【发布时间】:2012-07-07 10:37:49
【问题描述】:
执行此查询时出错,因为列文本也可能包含带单引号的文本。我如何在没有任何错误的情况下使用此查询 我的代码是
public bool updateCMStable(int id, string columnName, string columnText)
{
try
{
string sql = "UPDATE CMStable SET " + columnName +
"='" + columnText + "' WHERE cmsID=" + id;
int i = SqlHelper.ExecuteNonQuery(Connection.ConnectionString,
CommandType.Text,
sql);
if (i > 0)
{
return true;
}
else
{
return false;
}
}
catch (Exception ee)
{
throw ee;
}
}
【问题讨论】:
-
您能否提供您在此代码中遇到的确切错误。
-
字符串或二进制数据将被截断。声明已终止。
-
所以你意识到这里的 try/catch 没有任何用处,而是做了一些坏事?在这里转义不是正确的解决方法:这应该 100% 使用参数化。