0

我使用 MySQL 查询浏览器尝试了下面的“SELECT”MYSQL 语法,工作正常。当我将此语法用于 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
4

2 回答 2

2

DataTable.Select不能那样工作。它只接受对其列的过滤器,其语法类似于 sql 中的 where 子句语法。

例子:

dtTable.Select('operator_id = 1')

dtTable将返回所有行operator_id = 1

欲了解更多信息:

过滤器语法

DataTable.Select 方法

于 2011-06-22T18:50:17.670 回答
0

您误认为 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

于 2011-06-22T18:53:07.743 回答