我在数据表上运行SELECT
语句。问题是它给出了错误“表达式包含无效的字符串常量”。我知道它与我的查询结尾处的单引号有关,但我想不出为什么它不起作用。这是代码:
DataRow[] foundRow = dt.Select("Student='" + Student.ID + "' AND [Student Description]='" + Student.AbsenceDescription.Trim() + "'");
答案 0 :(得分:3)
这看起来像是经典的SQL注入问题。如果描述包含单个撇号,即“不可用”,这将破坏您的代码。另外,如果Student是一个整数值(即它是一个整数/自动递增的ID或数据库中的等价物),它不应该用引号括起来,给你 -
DataRow[] foundRow = dt.Select("Student=" + Student.ID + " AND [Student Description]='" + Student.AbsenceDescription.Trim() + "'");
答案 1 :(得分:2)
AbsenceDescription是否包含单引号'?
答案 2 :(得分:0)
先生。淡水河谷是对的。我敢打赌你在Student.AbsensceDescription中有引用。您应养成使用存储过程或至少参数化查询的习惯。