SqlCommand参数吃+

时间:2010-09-17 01:22:26

标签: tsql sqlcommand parameterization

我有这个:

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 Framework 2.0,没有升级选项。

3 个答案:

答案 0 :(得分:1)

您需要为参数

显式设置数据类型

答案 1 :(得分:1)

而不是尝试

q.Parameters.Add( "@a", SqlDbType.Text ).Value = a;

确保问题是否正确

答案 2 :(得分:0)

谢谢大家。我不确定到底发生了什么,但我最后只是在存储之前用零替换所有+符号。

我想我记得在查询字符串上传输这个变量,但我不记得确切。如果我这样做,那么qs解析器可能会使用加号,而不是参数化代码。你可能想检查一下。

我没有尝试指定一种数据类型,因为我赶时间用+代替那些没有像0那样被吃掉的东西是最快的解决方案。

再次感谢所有贡献者。