在VB.net中我们如何编码SQL的字符串

Ano*_*ite 1 mysql sql vb.net escaping

例如,在sql中

所有`应该用'`替换?

那么,vb.net内置的函数是否已经完成了那样的事情?

这样我就不用编码了.

顺便说一下,我不直接访问sql数据库.基本上我正在创建一个文本文件,该文本文件包含原始sql语句.大多数答案都涉及直接访问sql数据.

Cur*_*urt 7

我不这么认为,因为我认为这样的事情唯一相关的情况就是如果你在没有参数的情况下进行内联SQL命令.

这存在SQL注入的风险,因此您应该创建如下命令:

Dim cmd As New SqlCommand("UPDATE [TableA] SET ColumnA=@ColumnA WHERE ID=@ID", Conn)
cmd.Parameters.Add("@ColumnA", SqlDbType.NVarChar).Value = txtColumnA.Text
cmd.Parameters.Add("@ID", SqlDbType.Int).Value = ID
cmd.ExecuteNonQuery()
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,我曾经使用我的自定义SQL字符串替换功能的日子畏缩,我的黑客已故网站也是如此:( (2认同)

Dav*_*ele 7

不要试着这样做!我知道您正在尝试避免SQL注入,因此您应该因为考虑安全性而受到表扬.然而,滚动自己的卫生处理程序很容易出错.

在查询中使用参数

cmd.CommandText = "select * from customer where id=?id";

cmd.Parameters.AddWithValue("?id",CustomerIDValue);
Run Code Online (Sandbox Code Playgroud)