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

时间:2011-07-20 10:09:39

标签: mysql sql vb.net escaping

例如,在sql

所有`应该替换为``对吗?

嗯,vb.net内置了一个功能吗?

这样我就不用编码了。

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

3 个答案:

答案 0 :(得分:7)

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

这有SQL Injection的风险,因此您应该创建如下命令:

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()

答案 1 :(得分:7)

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

使用查询中的参数

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

cmd.Parameters.AddWithValue("?id",CustomerIDValue);

答案 2 :(得分:0)

如果您使用的是string,那么您将在代码中使用",因此您无需转义这些字符。

Dim mySql As String = "SELECT `MyColumn` FROM `Table`"