【发布时间】:2018-01-09 21:33:36
【问题描述】:
当找到特定字符串(实体)时,我使用以下代码删除表中的一行。它工作正常,但如果数据库中不存在“实体”,它会失败。
using (OleDbConnection thisConnection = new OleDbConnection(connectionname))
{
string deletequery = " DELETE FROM SFModelOutputVariables WHERE [Entity] = '" + ENTITY + "'";
OleDbCommand myAccessCommandDelete = new OleDbCommand(deletequery, thisConnection);
try
{
thisConnection.Open();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString() + "\n" + "-Error found while " + "connecting to Access Database");
return;
}
myAccessCommandDelete.ExecuteNonQuery();
thisConnection.Close();
}
当表中不存在所选实体的数据时,myAccessCommandDelete.ExecuteNonQuery(); 行出现错误。
【问题讨论】:
-
实际错误是什么?
-
使用参数避免sql注入和格式化错误。
-
是的,LarsTech 是正确的。这段代码非常狡猾,我可能会因为编写这样的代码而失去工作。您需要使用参数来避免 SQL 注入。