SQL Server 2012 Express中的Unicode
问题描述:
我使用c#程序将一些unicode字符(如中文字符)插入到SQL Server 2012数据库中。SQL Server 2012 Express中的Unicode
我试图插入的列是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();
谢谢!
答
当通过字符作为SQL字符串,总是先有 “N”:
N'Unicode'
,而不是仅仅
'Unicode'
或者你的情况:
@"INSERT INTO tweets ([username], [createdDate], [tweet])
Values (N'" + item.user.screen_name + "' , '" + item.created_at + "' , N'" + escapedString + "')"
通过的方式,你应该use parameters。它可以一次解决很多问题(比如你拥有的,日期和数字格式,安全等等)。
你不需要任何东西 - SQL Server完全能够处理Unicode。请**告诉我们如何从C#插入数据# – 2012-07-05 10:29:54
http://msdn.microsoft.com/en-us/library/ms143726 – 2012-07-05 10:31:37
@marc_s对不起,这是我如何从c#插入数据:String command4 = “INSERT INTO tweets([username],[createdDate],[tweet])值(''+ item.user.screen_name +'','”+ item.created_at +“','”+ escapedString +“')” ; SqlCommand insertTweet = new SqlCommand(command4,connectionstring); insertTweet.ExecuteNonQuery(); – Phantom 2012-07-05 11:02:44