0

asp.netでインラインクエリを使用していますが、問題は、Nサフィックスを適切に使用する方法がわからないことです。plsガイド...

  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');
4

3 に答える 3

4

と言えば十分でしょう

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

編集:それが失敗した場合、これは機能するはずです:

cmd.Parameters.Add("@newsdetails", SqlDbType.NVarChar, 1024).Value = txtnewsdetails.Text;
于 2012-06-18T05:59:42.473 に答える
3

その必要はありません。.NET 文字列は既に Unicode です。N は、 Nの後の文字列リテラルが Unicodeであることをクエリ アナライザーに伝えるだけです。

例えば

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

テーブルのフィールドnewsdetailsnewsactivityNVARCHAR(..)

編集 それは奇妙です。AddWithValue がパラメーターの型を正しく推測していない可能性があります。明示的に指定できます。

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

タイプと長さを明示的に指定するもう 1 つの理由は、WHERE 句フィルターでパラメーターを使用している場合です。DBType なしの AddWithValue を参照すると、クエリの実行が遅くなります

于 2012-06-18T05:57:37.060 に答える
0

パラメータで使用SqlDbType.NVarCharします。

于 2012-06-18T06:30:08.873 に答える