当words_array[i]
为希伯来文时,数据库显示'?????'
代替该词。
myCommand.CommandText = "INSERT INTO MyTable(word) VALUES (@word);
myCommand.Parameters.Add(new SqlParameter("@word", SqlDbType.Varchar, 50));
command.Parameters["@word"].Value = words_array[i];
我在下面尝试,但是得到一个错误:
错误语法附近"N">
我的尝试:
myCommand.CommandText = "INSERT INTO MyTable(word) VALUES (N'@word'N);
我也试过这个——问题是:把文本"@word"放在希伯来语单词的位置。
myCommand.CommandText = "INSERT INTO MyTable(word) VALUES (N'@word');
将SqlDbType.VarChar
改为SqlDbType.NVarChar
。当使用参数化查询时,不需要给字符串加上前缀。
行:
myCommand.Parameters.Add(new SqlParameter("@word",SqlDbType.VarChar,50));
表示参数的类型是使用单字节代码页而不是Unicode字符串的字符串。. net中的字符串是Unicode,但这一行告诉驱动程序使用线程的CurrentCultureInfo
指定的代码页将值转换为单字节编码。
应该是
myCommand.Parameters.Add(new SqlParameter("@word",SqlDbType.NVarChar,50));