[問題] ado.net 難字使用SqlParameter問題

看板C_Sharp作者 (~KYO~)時間8年前 (2016/03/06 12:07), 8年前編輯推噓2(209)
留言11則, 4人參與, 最新討論串1/1
最近發現使用ado.net 要insert內DB時,難字前要加N EX: insert into testDB Va,Vb values(N'塵蟎瀞',5566) 使用接字沒有問題 insert into testDB Va,Vb values(N'"+塵蟎瀞+"','"+5566"') 可是換成SqlParameter之後就不行了 有使用過的方式如下 方式1: insert into testDB Va,Vb values(N@Va,@Vb) SqlParameter[] parameters = { new SqlParameter("@Va","塵蟎瀞" ), new SqlParameter("@Vb",5566 )}; 方式2: insert into testDB Va,Vb values(N"+@Va+",@Vb) SqlParameter[] parameters = { new SqlParameter("@Va","塵蟎瀞" ), new SqlParameter("@Vb",5566 )}; 方式3: insert into testDB Va,Vb values(@Va,@Vb) SqlParameter[] parameters = { new SqlParameter("@Va","N'塵蟎瀞'" ), new SqlParameter("@Vb",5566 )}; 以上方式都不行QQ 不是找不到參數就是DB的值會是 "N塵??" 也拜過GOOGLE大神了 也沒有找到資料 求知道的人幫忙解一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.247.64.114 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1457237250.A.CE5.html

03/06 13:10, , 1F
insert into testDB Va,Vb values(@Va,@Vb)
03/06 13:10, 1F

03/06 13:10, , 2F
SqlParameter[] parameters = {
03/06 13:10, 2F

03/06 13:10, , 3F
new SqlParameter("@Va","塵蟎瀞" ),
03/06 13:10, 3F

03/06 13:10, , 4F
new SqlParameter("@Vb",5566 )};
03/06 13:10, 4F

03/06 13:11, , 5F
不用多此一舉自己加N,使用SqlParameter,ado.net會自己加N
03/06 13:11, 5F
有試過 不加N在DB裡會是"塵??"

03/06 13:12, , 6F
你可以用sql profiler攔截執行的sql看看
03/06 13:12, 6F

03/06 20:43, , 7F
你沒有指定sqltype呀
03/06 20:43, 7F
有指定 可是PO出來太長不方便大家看 所以縮成這樣 真抱歉QQ

03/06 20:44, , 8F
sqlparameter可參入sqltype,要傳nvarchar進去
03/06 20:44, 8F
※ 編輯: kyo0010 (27.247.64.114), 03/06/2016 21:47:43

03/06 21:53, , 9F
怕太長你可以用pastebin之類的網站貼來
03/06 21:53, 9F

03/06 21:53, , 10F
先用sql profiler看一下執行的sql長怎樣吧
03/06 21:53, 10F

03/07 00:21, , 11F
感覺您欄位沒開nvarxhart
03/07 00:21, 11F
文章代碼(AID): #1Mswq2pb (C_Sharp)