c#文本框可能导致我的SQL查询停止工作的字符

Coc*_*Dev 0 c# sql winforms

我的WinForm中有一个文本框.

用户键入文本(键盘允许的任何内容).单击"保存"时,有时会显示错误消息

查询表达式中的语法错误(缺少运算符)

我知道某些字符像'正在破坏我的SQL查询

我有几个问题

  1. 有什么我可以做的,以便我的查询不会中断并允许用户键入他们想要的任何内容吗?
  2. 如果没有办法做#1,我该如何扫描文本并删除所有会破坏我的查询的字符?

ama*_*ers 5

尝试使用参数将文本框值传递给查询.这也可以防止SQL注入攻击.

应该看起来像这样:

SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT * from TableName WHERE FieldA = @FieldValue";
cmd.CommandType = CommandType.Text;

//Define SqlParameter object and assign value to the parameter
cmd.Parameters.Add("@FieldValue", SqlDbType.VarChar, 50);
cmd.Parameters["@FieldValue"].Value = TextBox.Value;
Run Code Online (Sandbox Code Playgroud)