我想通过使用存储过程和参数在SQL Server中插入和更新阿拉伯语。我检查了其他所有他们说您使用nvarchar(100)
或使用N'الاسم العربي'
的帖子。
我的情况有所不同:我正在使用存储过程和参数,如何将N放在参数@patient_Name_Arabic
之前,这是我的存储过程:
ALTER PROCEDURE [dbo].[UPDATE_PATIENTS]
@Patient_name VARCHAR(50),
@Age INT,
@Mobile VARCHAR(50),
@Email VARCHAR(50),
@Address VARCHAR(50),
@Gender INT,
@Patient_id VARCHAR(50),
@Natid INT,
@Patient_no INT,
@insurance_card IMAGE,
@ID_card IMAGE,
@patient_Name_Arabic NVARCHAR(50)
AS
UPDATE [Patients]
SET [Patient_Name] = @Patient_name,
[Age] = @Age,
[Mobile] = @Mobile,
[Email] = @Email,
[Address] = @Email,
[Gender] = @Gender,
[Patient_id] = @Patient_id,
[Natid] = @Natid,
[insurance_card] = @insurance_card,
[ID_card] = @ID_card,
patient_Name_Arabic = @patient_Name_Arabic
WHERE Patient_no = @Patient_no
我试图将N
放在参数@patient_Name_Arabic
之前,但是它不起作用。
N'@patient_Name_Arabic' or N"@patient_Name_Arabic" or N(@patient_Name_Arabic)
在我的案例中,存储阿拉伯语言的正确方法是什么?
答案 0 :(得分:1)
我在我的c#应用程序中找到了下面的代码,该解决方案正在使用:
param[10] = new SqlParameter("@patient_Name_Arabic", SqlDbType.VarChar, 50);
param[10].Value = patient_Name_Arabic;
我更改了SqlDbType.VarChar,50 到SqlDbType.NVarChar,50
param[10] = new SqlParameter("@patient_Name_Arabic", SqlDbType.NVarChar, 50);
param[10].Value = patient_Name_Arabic;
及其正确的工作方式并保存了我之前在SQL Server的存储过程中尝试过的阿拉伯语言,我更改了应用程序代码,然后它也开始工作。 谢谢你的帮助