首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SqlCommand参数摄取+

SqlCommand参数摄取+
EN

Stack Overflow用户
提问于 2010-09-17 09:22:26
回答 3查看 101关注 0票数 0

我有这个:

代码语言:javascript
复制
string a = "a+a";
SqlCommand q = new SqlCommand("SELECT * FROM table WHERE a = @a", conn);
q.Parameters.AddWithValue("@a", a);

但是参数化完全删除了a中的+,只剩下a a,而不是所需的a+a。我需要把+放在适当的位置;我只想要它转义,而不是删除。

有没有办法让C#转义+而不是擦除它?我使用的是.NET Framework2.0,没有升级的选项。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-30 05:57:16

谢谢大家。我不确定这里到底发生了什么,但我最终只是在存储之前将所有+号都替换为零。

我想我记得在querystring中传递了这个变量,但是我记不清了。如果我这样做了,那么加号很可能被qs解析器吃掉了,而不是参数化代码。你可能会想要检查一下。

我没有尝试指定数据类型,因为我很着急,用+替换不会被吃掉的东西(如0)是最快的解决方案。

再次感谢所有的贡献者。

票数 0
EN

Stack Overflow用户

发布于 2010-09-17 12:55:51

您需要显式设置参数的数据类型

票数 1
EN

Stack Overflow用户

发布于 2010-09-17 13:01:29

而不是尝试

代码语言:javascript
复制
q.Parameters.Add( "@a", SqlDbType.Text ).Value = a;

只要确保这就是问题所在

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3732077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档