Ank*_*ain 1 .net c# sql database
执行此查询时获取错误,因为列文本也可能包含带单引号的文本.如何使用此查询没有任何错误我的代码是
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;
}
}
Run Code Online (Sandbox Code Playgroud)
您应该使用参数化查询而不是在字符串中构建SQL - 除了单引号问题之外,您当前的代码容易受到SQL注入攻击.
有一个限制是您尝试使用无法参数化的动态列名,但您仍然可以以更安全的方式使用动态SQL.
我建议阅读Erland Sommarskog 的"动态SQL的诅咒和祝福",以便对该主题进行全面的处理.
| 归档时间: |
|
| 查看次数: |
5943 次 |
| 最近记录: |