我有这个:
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,没有升级选项。
答案 0 :(得分:1)
您需要为参数
显式设置数据类型答案 1 :(得分:1)
而不是尝试
q.Parameters.Add( "@a", SqlDbType.Text ).Value = a;
确保问题是否正确
答案 2 :(得分:0)
谢谢大家。我不确定到底发生了什么,但我最后只是在存储之前用零替换所有+符号。
我想我记得在查询字符串上传输这个变量,但我不记得确切。如果我这样做,那么qs解析器可能会使用加号,而不是参数化代码。你可能想检查一下。
我没有尝试指定一种数据类型,因为我赶时间用+代替那些没有像0那样被吃掉的东西是最快的解决方案。
再次感谢所有贡献者。