运行方法将一些数据插入表中 事件使用 sql 查询进行管理,该查询返回错误
"'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;
}
}
}
需要注意的两件事:
- 不应使用包含的值设置命令字符串的格式,而应使用 sql 命令参数,该参数可以添加到 SqlCommand 的参数集合中。
- 您正在混合 2 种在 SQL 中插入内容的方法。您可以插入...选择。。。在哪里或您可以插入...值,但带有值的那个不允许/不需要在哪里。我把链接放到MySql文档,但我认为它与其他SQL RDBMS相同(对于SQL Server(。
我认为您想要这样的 UPDATE 查询:
string SQLquery1 = string.Format("UPDATE EventsManaged SET AreaType = '{0}', AreaName = '{1}', Cost = '{2}', CostPer = '{3}' WHERE AreaID = '{4}' AND CustomerID = '{5}'", areaType, areaName, cost, costPer, v, id);
这将更新满足 WHERE 条件的现有行。INSERT 语句添加一个新行,因此此处没有 WHERE 子句。希望它有帮助。