c# - 传递阿拉伯语文本并检查在哪里给出错误或转换?
问题描述
我必须从使用 C# 通过 SQL Server 中的存储过程传递参数来找出现有的数据记录。
像那样
storedprocedurename @strclause nvarchar(200)
然后是我的完整程序流程。现在讨论的重点来了,当我将参数从 c# 传递给过程参数时,阿拉伯语中的参数就像 'أفغانستاني' 转换为 '????????' 当我在查询分析器中使用 N 前缀检查程序时,它工作正常。但是当我使用 c# 从后面的代码中传递它时。像 N'أفغانستاني' 然后查询转换为完整的字符串,如 'N''أفغانستاني' 并使用 N'أفغانستاني' 再次转换为 'N'?????????'。
现在的问题是如何获得与 N 前缀的精确匹配,以及如何通过将参数传递给存储过程来实现。在普通查询中,它工作正常,但在存储过程中,我需要帮助。
ALTER PROCEDURE [dbo].[MigrateNewVisa]
@CompanyID UNIQUEIDENTIFIER,
@VisaNos NVARCHAR(100),
@VisaTypeIDs NVARCHAR(500), -- This is comes from c# and Arabic text but converted to ??????
@scdate DATETIME,
@createdby NVARCHAR(120),
@modifyby NVARCHAR(120),
@borderno NVARCHAR(100)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @VisaTypeID NVARCHAR(40)
SET @VisaTypeID = (SELECT DBO.BVF_Get_VisaTypeIdByEnArName(@VisaTypeIDs)
-- Insert statements for procedure here
INSERT INTO [VisaDetails] ([ID], [CompanyID], [VisaNo], [VisaTypeID],
[CreatedBy], [modifyby], [borderno])
VALUES (NEWID(), @CompanyID, @BlockVisaNos, @VisaTypeID,
@createdby, @modifyby, @borderno)
END
我需要数据值来自现有记录
由于 ???? 导致 ID 值不匹配 来自传入参数的阿拉伯文本,其中存在值
SET @VisaTypeID = (SELECT DBO.BVF_Get_VisaTypeIdByEnArName(@VisaTypeIDs)
解决方案
推荐阅读
- pandas - DataFrame 属性无法识别
- java - 如何在 for 循环中添加 try catch 块以捕获 ArrayIndexOutOfBounds 异常?
- c# - EF Core - SaveChanges 上没有数据库更新
- c++ - 如何在 C++ 中使用十六进制颜色代码制作颜色查找功能
- mysql - db 中表的第一行的元素返回:列名和两个破折号以及它的值
- python - 用由 1 列组成的新数据框替换数据框中的特定列
- c++ - 如何使用 sdl2 库和 make 构建项目?
- reactjs - 可点击的点图
- typescript - Apollo 解析器 - 等待另一个解析器的结果
- c++ - 从函数返回本地引用