我收到了这个错误:
字符串''后面的未闭合引号。
使用以下代码:
lSQL = "DELETE FROM tblCourses where courseCode='" + aCourseCode + "'";
其中lSQL
是局部变量,aCourseCode
是商店值。有什么建议吗?
答案 0 :(得分:17)
您应该始终使用参数化查询,否则您的代码很容易受到错误的影响,因为您正在获取错误,甚至更糟糕的SQL注入攻击。在构建SQL查询时,从不在代码中使用字符串连接。这是正确的方法:
using (var conn = new SqlConnection(ConnectionString))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = "DELETE FROM tblCourses WHERE courseCode = @courseCode";
cmd.Parameters.AddWithValue("@courseCode", aCourseCode);
int deletedRowsCount = cmd.ExecuteNonQuery();
}
这将确保即使aCourseCode
变量包含一些转义和危险字符,它们也将得到妥善处理。
答案 1 :(得分:0)
您的aCourseCode变量可能会有单引号或双引号。
答案 2 :(得分:-4)
格式化字符串的更好方法是使用以下内容:
lSQL = String.Format("DELETE FROM tblCourses where courseCode='{0}'", aCourseCode);
还要确保变量aCourseCode中没有任何嵌入式双引号或单引号。
希望有所帮助。