作者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://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1457237250.A.CE5.html
1F:→ reichs: insert into testDB Va,Vb values(@Va,@Vb) 03/06 13:10
2F:→ reichs: SqlParameter[] parameters = { 03/06 13:10
3F:→ reichs: new SqlParameter("@Va","尘蟎瀞" ), 03/06 13:10
4F:→ reichs: new SqlParameter("@Vb",5566 )}; 03/06 13:10
5F:→ reichs: 不用多此一举自己加N,使用SqlParameter,ado.net会自己加N 03/06 13:11
有试过 不加N在DB里会是"尘??"
6F:→ reichs: 你可以用sql profiler拦截执行的sql看看 03/06 13:12
7F:→ O187: 你没有指定sqltype呀 03/06 20:43
有指定 可是PO出来太长不方便大家看 所以缩成这样 真抱歉QQ
8F:→ O187: sqlparameter可参入sqltype,要传nvarchar进去 03/06 20:44
※ 编辑: kyo0010 (27.247.64.114), 03/06/2016 21:47:43
9F:推 ian90911: 怕太长你可以用pastebin之类的网站贴来 03/06 21:53
10F:→ reichs: 先用sql profiler看一下执行的sql长怎样吧 03/06 21:53
11F:推 Autumn740317: 感觉您栏位没开nvarxhart 03/07 00:21