2016-01-13 4 views
0
DataGridView1.DataSource = Nothing 
     Dim con As New MySqlConnection("Data Source=localhost;user id=root; password=; database=ugibl;") 
     Dim da As MySqlDataAdapter = Nothing 

     Dim dt As New DataTable 
     Dim SQL As String = "" 
     Try 
      **SQL = "select * FROM duty where '" & ComboBox3.Text & "' = '" & TextBox15.Text & "' "** 
      con.Open() 
      da = New MySqlDataAdapter(SQL, con) 
      da.Fill(dt) 
      con.Close() 
      DataGridView1.DataSource = dt 
     Catch ex As Exception 
      If con.State = ConnectionState.Open Then 
       con.Close() 
      End If 
     End Try 
    End Subere 

ответ

0

персонажу использовать в MySql вокруг имен столбцов является кавычка ( ALT + 096) не одна цитата. Поэтому ваша строка, которая создает команду sql, неверна.

SQL = "select * FROM duty where `" & ComboBox3.Text & "` = .... 

Однако помните, что вы не должны создавать команды sql, конкатенирующие строки, но используя параметры. В вашем случае параметр должен использоваться, чтобы выразить значение в вашем где заявлении

... 
SQL = "select * FROM duty where `" & ComboBox3.Text & "` = @param1" 
con.Open() 
da = New MySqlDataAdapter(SQL, con) 
da.SelectCommand.Parameters.Add("@param1", MySqlDbType.VarChar).Value = TextBox15.Text 
da.Fill(dt) 
.... 

Обратите внимание, что вы не можете использовать параметр для имени столбца, вы можете использовать их только для значений

+0

Если где это столбец, почему вам даже нужно заключить его в «"? – Codexer

+0

Не уверен в имени столбца. Если он содержит пробелы или зарезервированное ключевое слово, тогда необходимы обратные ссылки. – Steve

+0

Да, правильно ... – Codexer

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

  • Нет связанных вопросов^_^