[问题] 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