看板 C_Sharp 關於我們 聯絡資訊
最近發現使用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