作者kyo0010 (~KYO~)
看板C_Sharp
標題[問題] ado.net 難字使用SqlParameter問題
時間Sun Mar 6 12:07:27 2016
最近發現使用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
→ reichs: insert into testDB Va,Vb values(@Va,@Vb) 03/06 13:10
→ reichs: SqlParameter[] parameters = { 03/06 13:10
→ reichs: new SqlParameter("@Va","塵蟎瀞" ), 03/06 13:10
→ reichs: new SqlParameter("@Vb",5566 )}; 03/06 13:10
→ reichs: 不用多此一舉自己加N,使用SqlParameter,ado.net會自己加N 03/06 13:11
有試過 不加N在DB裡會是"塵??"
→ reichs: 你可以用sql profiler攔截執行的sql看看 03/06 13:12
→ O187: 你沒有指定sqltype呀 03/06 20:43
有指定 可是PO出來太長不方便大家看 所以縮成這樣 真抱歉QQ
→ O187: sqlparameter可參入sqltype,要傳nvarchar進去 03/06 20:44
※ 編輯: kyo0010 (27.247.64.114), 03/06/2016 21:47:43
推 ian90911: 怕太長你可以用pastebin之類的網站貼來 03/06 21:53
→ reichs: 先用sql profiler看一下執行的sql長怎樣吧 03/06 21:53
推 Autumn740317: 感覺您欄位沒開nvarxhart 03/07 00:21