SqlConnection con = new SqlConnection(ConStr); string insertString = string.Format("UPdate Products Set ProductName='{0}' Where ProductID='{1}'", txt_ProductName.Text,i);
SqlCommand cmd = new SqlCommand(insertString, con); con.Open();
int rows = cmd.ExecuteNonQuery(); con.Close();
con.Dispose();
this.Close();
一般情况下这条SQL执行正常。
但当txt_ProductName.Text的值中包含 's 时。这条SQL语句就会报错,提示如下
【's' 附近有语法错误。字符串 '' 后的引号不完整。】应该怎样写才正确呢?希望高手指教
解决方案 »
- c#中用ZedGraph开源项目画图:myPane上已经有一个图形,我想通过点击按钮去掉已有图形并重新画一个图形,该怎么去掉原有图形?
- C# C/S结构中有关domainUpDown与trackBar控件的关联问题(再次发帖,万分火急)
- 如何telnet到一台服务器上执行ftp指令
- DataList的问题,请大家帮忙
- 哪位知道如何设置web控件的焦点?
- SQL通用类 送给新手
- 关于类型转换的问题?
- 使用[DllImport("GDI32.DLL")],报告说DllImport找不到或是没有using....
- 怎么实现Form之间的参数传递?谢谢!
- C#高手
- 用户输入一个10个长度的整行数组,然后按降序排列这个数组,并输出(c#))
- 窗体的主线程在最小化或隐藏后是否运行
试试看
参数化还可以仿SQl注入
http://archive.cnblogs.com/a/1988953/
ps.一直用SqlHelper没遇到这个问题,应该是SqlHelper处理掉了
string insertString = string.Format("UPdate Products Set ProductName='{0}' Where ProductID='{1}'", txt_ProductName.Text.Replace("'", "''"),i.Replace("'", "''"));方案2:string insertString = "UPdate Products Set ProductName= @name Where ProductID=@id";
SqlCommand cmd = new SqlCommand(insertString, con);
cmd.Parameters.AddWithValue("@name", txt_ProductName.Text);
cmd.Parameters.AddWithValue("@id", i);
con.Open();
int rows = cmd.ExecuteNonQuery();