Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不同的;选择";MYSQL中带“的语法;dtTable.选择";在.NET中_C#_Vb.net_Datatable_Sql_Datatable.select - Fatal编程技术网

C# 不同的;选择";MYSQL中带“的语法;dtTable.选择";在.NET中

C# 不同的;选择";MYSQL中带“的语法;dtTable.选择";在.NET中,c#,vb.net,datatable,sql,datatable.select,C#,Vb.net,Datatable,Sql,Datatable.select,我在下面使用MYSQL查询浏览器尝试了“选择”MYSQL语法,工作正常。当我在dtTable.Select()中使用此语法时,错误是“表达式上的语法错误”。请帮帮我,谢谢 Dim dtTable As DataTable = MyDataset.Tables("machine") Dim sql As String = String.Format("SELECT product_name, operator_name, totalizer_name

我在下面使用MYSQL查询浏览器尝试了“选择”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
Dim dtTable As DataTable=MyDataset.Tables(“机器”)
Dim sql As String=String.Format(“选择产品名称、操作员名称、累加器名称
来自产品、操作员、累加器类型、机器
其中product.product\u id=machine.product\u id和
operator.operator\u id=machine.operator\u id和
累加器\类型.累加器\ id=机器.累加器\ id
按机器订购。机器(id ASC;))
Dim rowSearching()作为数据行
rowSearching=dtTable。然后选择(sql)'0
对于行搜索中的每个dr As数据行
MessageBox.Show(CStr(dr.Item(0))和“&CStr(dr.Item(1))和“&CStr(dr.Item(2)))
下一个
如果结束

数据表。选择
不会那样工作。它只接受其列上的过滤器,其语法类似于sql中的where子句语法

例子: 将返回
dtTable
中具有
operator\u id=1的所有行

有关更多信息:


您错误地理解了Select在Datatable对象上的工作方式

你需要按照这些思路使用一些东西

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)

有关详细教程,请参阅。

@Mike Miller,谢谢。我试图消除“String.Format”,但仍然出现错误:“语法错误:“product_name”运算符后缺少操作数”。:(我已经在mysql中创建了一个数据库,然后我使用“MySQLDataAdapter”中的“Fill”方法放入数据集。我的困难是当我想从四个数据表中检索数据时,这些数据表掌握了数据集中相关的细节。我创建的数据表之间的关系。但是当我尝试执行命令“rowSearching=dtTable.Select(sql)”时若要显示DataTable中的某些数据,我尚未成功。谢谢谢谢。我想从多个DataTable中检索数据,并在数据集中包含与主详细信息相关的数据。如何操作?
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)