【发布时间】:2018-03-10 08:08:30
【问题描述】:
使用返回错误的 sql 查询运行将一些数据插入表 EventsManaged 的方法
“'WHERE'附近的语法不正确”
但我看不到我的错误?
该方法位于 EventDAL 中并从打开的表单中调用。我使用了断点并检查了输入的数据类型是否正确 - 有什么帮助吗?
public static int AddAllToEventsManaged( string areaType, string areaName, double cost, double costPer, int v, int id)
{
using (SqlConnection connection = new SqlConnection(_connectionstring))
{
connection.Open();
string SQLquery1 = string.Format("INSERT INTO EventsManaged (AreaType, AreaName, Cost, CostPer) VALUES ('{0}','{1}','{2}','{3}') WHERE AreaID = '{4}' AND CustomerID = '{5}'", areaType, areaName, cost, costPer, v, id);
SqlCommand insertProjectCommand = new SqlCommand(SQLquery1, connection);
int rowsAffected = insertProjectCommand.ExecuteNonQuery();
connection.Close();
return rowsAffected;
}
}
}
【问题讨论】:
-
您不能将
Insert与where结合使用。 WHERE 子句用于过滤数据,但如果数据尚不存在并且将要插入,则这没有意义。也许您打算更新数据? -
我愿意!非常感谢:)
-
请使用参数化查询。您正在向黑客开放您的数据库。 stackoverflow.com/a/652999/4180382
-
这只是一个高中项目,但我会试试这个,谢谢。
-
1.备份您的数据库。 2. 使用
', '', 0, 0); DROP TABLE EventsManaged; --的AreaType 尝试您的代码