1

UPDATEは ????、アップデータフィールドがアラビア語で書かれているかどうかを示し、これが私のクエリです。

UPDATE  students 
SET first_name = 'الاسم' , last_name = 'الاسم الاخير' , 
    father_name = 'الاسم الاخير' , mother_name = '', 
    birth_date = '1/1/1990 12:00:00 AM' , education_level = '' , 
    address = '' , notes = '' 
WHERE student_id = 33

そして、これがアップデートの結果です:

student_id  first_name  last_name   mother_name     father_name   birth_date    
33           ?????      ?????          ??????       ???????????   1990-01-01

//答えは素晴らしいです。ありがとうございます。別の質問は、C#プログラムでこのUPDATE構文を使用していることです。

command.CommandText = "UPDATE  students SET " +
        "first_name = " + "'" + first_name + "'" + " , last_name = " + "'" + last_name + "'" +
         " , father_name = " + "'" + father_name + "'" + " , mother_name = " + 
        "'" + mother_name + "'" + ", birth_date = " + "'" + birth_date + "'" +
        " , education_level = " + "'" + education_level + "'"  +
        " , address = " + "'" + address + "'" + " , notes = " + "'" + notes + "'" +
        " WHERE student_id = " + id ;

//文字Nの使い方

4

2 に答える 2

8

文字列リテラルの前にあるプレフィックスを忘れたため、文字列リテラルはではなくNとして扱われます。nvarcharvarchar

SET first_name = N'الاسم'

それがないと、テキストはデフォルトの照合のコードページが処理できる文字に強制変換されます。

于 2012-06-18T10:50:26.280 に答える
0

この照合Arabic_CI_ASを使用してデータベースを作成します。アラビア文字の前に、Nを付ける必要はありません。

于 2013-03-23T09:30:26.563 に答える