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

作者: kyo0010 (~KYO~)   2016-03-06 12:07:27
最近發現使用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大神了 也沒有找到資料
求知道的人幫忙解一下
作者: reichs   2016-03-06 13:10:00
insert into testDB Va,Vb values(@Va,@Vb)SqlParameter[] parameters = {new SqlParameter("@Va","塵蟎瀞" ),new SqlParameter("@Vb",5566 )};不用多此一舉自己加N,使用SqlParameter,ado.net會自己加N你可以用sql profiler攔截執行的sql看看
作者: O187 (187cm)   2016-03-06 20:43:00
你沒有指定sqltype呀sqlparameter可參入sqltype,要傳nvarchar進去
作者: ian90911 (xopowo)   2016-03-06 21:53:00
怕太長你可以用pastebin之類的網站貼來
作者: reichs   2016-03-06 21:53:00
先用sql profiler看一下執行的sql長怎樣吧
作者: Autumn740317 (天生好手)   2016-03-07 00:21:00
感覺您欄位沒開nvarxhart

Links booklink

Contact Us: admin [ a t ] ucptt.com