c#中datatable select语句出错

时间:2011-07-12 14:06:23

标签: c#

我在数据表上运行SELECT语句。问题是它给出了错误“表达式包含无效的字符串常量”。我知道它与我的查询结尾处的单引号有关,但我想不出为什么它不起作用。这是代码:

DataRow[] foundRow = dt.Select("Student='" + Student.ID + "' AND [Student Description]='" + Student.AbsenceDescription.Trim() + "'");

3 个答案:

答案 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中有引用。您应养成使用存储过程或至少参数化查询的习惯。