2012-06-18 38 views
0

我使用聯查詢在asp.net,但問題是我現在不如何使用正後綴正確PLS指導插入SQL Server中的Unicode字符....如何使用在線查詢

cn.Open(); 
    SqlCommand cmd = new SqlCommand("insert into newsactivity VALUES(@newstitle, @newsdetails ,@dated,@type)",cn); 
    cmd.Parameters.AddWithValue("@newstitle",txtnewstitle.Text); 
    cmd.Parameters.AddWithValue("@newsdetails",N'txtnewsdetails.Text'); 
+0

當您正在使用的參數設置,然後'SqlDbType'到'NVarChar'應足夠好 – V4Vendetta

回答

3

你不需要。 .NET字符串已經是unicode。 N的只是告訴查詢分析器,字符串的ñ後的文字是Unicode。

例如

cmd.Parameters.AddWithValue("@newsdetails","मैं stackoverflow प्यार है"); 

只要確保你的newsactivity表中的字段newsdetailsNVARCHAR(..)

編輯 真奇怪。可能AddWithValue尚未正確推斷參數的類型。您可以明確指定它:

SqlParameter param = cmd.Parameters.AddWithValue("@newsdetails",txtnewsdetails.Text); 
param.SqlDbType = SqlDbType.NVarChar; 

明確指定類型和長度的另一個好理由是如果您在WHERE子句過濾器中使用參數。見AddWithValue without DBType causing queries to run slowly

+0

其爲nvarchar已經......和一個freetextbox但保存後會顯示?????字符.... SQL服務器如何以往任何時候都接受unicode的,當我在SQL Server中直接插入 –

4

應該足以說

cmd.Parameters.AddWithValue("@newsdetails", txtnewsdetails.Text); 

編輯:如果失敗,那麼這應該工作:在參數

cmd.Parameters.Add("@newsdetails", SqlDbType.NVarChar, 1024).Value = txtnewsdetails.Text; 
+0

非常感謝主席先生..........它的工作......謝謝Yopu非常MASTER! –

0

使用SqlDbType.NVarChar