Как в VB.net мы можем кодировать строку для SQL - PullRequest
1 голос
/ 20 июля 2011

Например, в sql

все `должно быть заменено на` `верно?

Хорошо, есть ли встроенная в vb.net функция, которая уже выполняет подобные вещи?

Таким образом, мне не нужно кодировать его.

Кстати, у меня нет прямого доступа к базе данных sql. В основном я создаю текстовый файл, и этот текстовый файл содержит необработанные операторы SQL. Большинство ответов касаются прямого доступа к данным sql.

Ответы [ 3 ]

7 голосов
/ 20 июля 2011

Я так не думаю, так как я думаю, что единственный случай, когда что-то подобное было бы уместно, это если вы выполняли встроенные команды 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()
7 голосов
/ 20 июля 2011

Не пытайтесь сделать это!Я знаю, что вы пытаетесь избежать SQL-инъекций, так что вы заслуживаете похвалы за соображения безопасности.Тем не менее, если вы проконтролируете свою собственную процедуру дезинфекции, то легко ошибиться.

Используйте параметры в своем запросе в соответствии с

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

cmd.Parameters.AddWithValue("?id",CustomerIDValue);
0 голосов
/ 20 июля 2011

Если вы используете string, тогда вы будете использовать " в своем коде, поэтому вам не нужно будет экранировать эти символы.

Dim mySql As String = "SELECT `MyColumn` FROM `Table`"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...