3

我正在使用 ac# 程序将一些 unicode 字符(例如中文字符)插入到 SQL Server 2012 数据库中。

我要插入的列是nvarchar,但仍然得到 ??????? 而不是正确的字符。我正在从 twitter 获取推文并将其插入数据库。

我正在使用 SQL Server 2012 Express。我必须安装任何语言包或更改设置吗?我对 SQL Server 不是很熟悉。

这就是我使用 c# 将代码插入数据库的方式:

String command4 = "INSERT INTO  tweets ([username], [createdDate], [tweet]) Values ('" + item.user.screen_name + "' , '" + item.created_at + "' ,N'" + escapedString + "')";

SqlCommand insertTweet = new SqlCommand(command4, connectionstring);

insertTweet.ExecuteNonQuery();

谢谢!

4

1 回答 1

3

将字符作为 SQL 字符串传递时,始终以“N”开头:

N'Unicode'

而不仅仅是

'Unicode'

或者在你的情况下:

@"INSERT INTO tweets ([username], [createdDate], [tweet]) 
Values (N'" + item.user.screen_name + "' , '" + item.created_at + "' , N'" + escapedString + "')"

顺便说一句,你应该使用参数。它可以一次解决许多问题(例如您拥有的问题、日期和数字格式、安全性......)

于 2012-07-05T11:07:19.683 回答