2014-02-20 3 views
0

Я Поиск и регистрация Блок для дубликата ID из базы данных MySQL с помощью VB.Net 2010. у меня: у Вас есть ошибка в вашем синтаксисе SQL ....VB.Net с вопросом mySql?

Пожалуйста, вы можете помочь мне в этом? Какая ошибка я сделал? Каким будет правильный путь?

Imports System.IO 
Imports MySql.Data.MySqlClient 
Imports System.Data.SqlClient 

    Public Class Add_Clients 
     Private Sub CheckClient() 
      Dim myquery As String = "" 
      Dim mycmd As MySqlCommand 

      myquery = "select * from clients where client_id=" & clid.Text 
      mycmd = New MySqlCommand(myquery, con) 
      Dim idno As Integer = mycmd.ExecuteNonQuery() 

      If idno < 0 Then 
     MsgBox("The Client is already Exist!", MsgBoxStyle.Exclamation, "Car Rental System") 
       Return 
      End If 

     End Sub 
+0

Ваше заявление SQL неверно. весь оператор должен быть внутри Double Codes, например, «select * from clients where client_id = clid.Text» –

ответ

1

Ваш запрос должен быть таким ...

myquery = "SELECT * FROM clients WHERE client_id='" & clid.Text.Replace("'","''").Trim() & "'" 

Дополнительный .Replace("'","''").Trim() должен защитить вас от SQL инъекций. Это должно работать на данный момент ... Но позже вы используете параметризованные запросы, чтобы избежать SQL-хаков :) Итак, на данный момент, сначала выполняйте инструкции SQL.

+0

Большое спасибо. Хороший совет действительно! –

+0

Ваш прием :) Сначала выполните инструкции SQL SQL ... Затем перейдите к параметризованным запросам :) Один шаг за раз. –

0

Вы должны использовать параметризованный запрос. Это упрощает код, защищая от атак инъекций.

myquery = "select * from clients where [email protected]" 
**mycmd = New MySqlCommand(myquery, con)** 
mycmd.Parameters.AddWithValue("@clid", clid.Text); 
+0

У вашего кода есть ошибка рядом с mycmd «Ссылка на объект не установлена ​​в экземпляр объекта». Проверь это! –

+0

У вас есть точка, но я не вижу, где установлен ваш объект con (nection). В любом случае вы должны привыкнуть к использованию параметров. –

Смежные вопросы