Другой синтаксис «SELECT» в MYSQL с «dtTable.Select» в .NET - PullRequest
0 голосов
/ 22 июня 2011

Я попробовал "SELECT" синтаксис MYSQL ниже, используя MySQL Query Browser, работает нормально.Когда я использовал этот синтаксис в dtTable.Select (), ошибка «Синтаксическая ошибка в выражении».Пожалуйста, помогите мне, спасибо.

Dim dtTable As DataTable = MyDataset.Tables("machine")
Dim sql As String = String.Format("SELECT product_name, operator_name, totalizer_name 
                                   FROM product, operator, totalizer_type, machine 
                                   WHERE product.product_id = machine.product_id AND 
                                         operator.operator_id = machine.operator_id AND 
                                         totalizer_type.totalizer_id = machine.totalizer_id 
                                   ORDER BY machine.machine_id ASC;")
Dim rowSearching() As DataRow
rowSearching = dtTable.Select(sql)  ' <--- (error in here - "Syntax error on expression")

If rowSearching.Length > 0 Then
   For Each dr As DataRow In rowSearching
      MessageBox.Show(CStr(dr.Item(0)) & " " & CStr(dr.Item(1)) & " " & CStr(dr.Item(2)))
   Next
End If

Ответы [ 2 ]

2 голосов
/ 22 июня 2011

DataTable.Select так не работает.Он просто принимает фильтр для своих столбцов с таким синтаксисом, как синтаксис предложения where в sql.

Пример:

dtTable.Select('operator_id = 1')

вернет все строки в dtTable, имеющие operator_id = 1

Для получения дополнительной информации:

Синтаксис фильтра

Метод DataTable.Select

0 голосов
/ 22 июня 2011

Вы ошибаетесь в том, как Select работает с объектом Datatable, http://msdn.microsoft.com/en-us/library/det4aw50.aspx

Вы должны использовать что-то в этом духе

Dim conn As New MySqlConnection
Dim myCommand As New MySqlCommand
Dim myAdapter As New MySqlDataAdapter
Dim myData As New DataTable
Dim SQL As String

conn.ConnectionString = myConnString
conn.Open()

myCommand.Connection = conn
myCommand.CommandText = SQL

myAdapter.SelectCommand = myCommand
myAdapter.Fill(myData)

См. http://www.vbmysql.com/articles/vbnet-mysql-tutorials/the-vbnet-mysql-tutorial-part-4 для приличного учебника.

...