VB-使用INNER JOIN并显示数据

奥兰多S.

我需要做的是:

  • 选择一个.mdb文件
  • DataGrid2个字段Table1和1个字段上显示table2
  • 将表另存为新数据库

我陷入第2点,我无法使用两个表,我一直在使用INNER JOINLEFT JOIN

我的.mdb数据库有2个表,每个有Field1Field2Field3我想显示Table1.Field1Table1.Field2Table2.Field3

我的代码(关于button_click事件)是:

 Dim openFile As New OpenFileDialog()
    openFile.FileName = ""
    openFile.Filter = "Microsoft Access Application (*.mdb)|*.mdb"

    Dim res As System.Windows.Forms.DialogResult = openFile.ShowDialog()
    If res = System.Windows.Forms.DialogResult.Cancel Then
        Return
    End If

    Dim CONNECT_STRING As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + openFile.FileName
    Dim cnn As New OleDbConnection(CONNECT_STRING)
    cnn.Open()

    'PROBLEM HERE
    Dim Sql As String = "SELECT Tabla1.Campo1, Tabla1.Campo2, Tabla2.Campo3"
    Sql += " FROM Tabla1 LEFT JOIN Tabla2 ON Tabla1.Campo3 = Tabla2.Campo3"


    Dim cmd As New OleDbCommand(Sql, cnn)
    Dim da As New OleDb.OleDbDataAdapter(cmd)
    Dim ds As New DataSet
    da = New OleDbDataAdapter(cmd)
    da.Fill(ds, "joined")
    dGrid.DataSource = ds.Tables("joined")
    cnn.Close()

使用此代码,仅显示表1中的字段1和2。

但是如果我改变这个:

Dim Sql As String = "SELECT Tabla1.Campo1, Tabla1.Campo2, Tabla2.Campo3"
Sql += " FROM Tabla1 LEFT JOIN Tabla2 ON Tabla1.Campo3 = Tabla2.Campo3"

对此:

Dim Sql As String = "SELECT Tabla1.Campo1, Tabla1.Campo2,Tabla2.Campo3"
Sql += " FROM Tabla1 LEFT JOIN Tabla2 ON Tabla1.ID = Tabla2.ID"

会工作的!

但为什么?

如果我的真实MDB有更多的表和字段,应该如何在新表上重新排列字段?

谢谢

奥兰多S.

我找到了解决方案。我的问题是我不知道INNER JOIN应该如何工作。如果有人遇到与我相同的问题,我将进行解释。要使用INNER JOIN,要联接的表必须有1个共同的字段,通常这是ID,但是在我的情况下,我的数据库没有一个。

因此,在解决我的问题时,我需要使用以下代码创建一个ID字段:

 Dim oQuery As String = "ALTER TABLE FloatTable ADD COLUMN ID Identity(1,1)"
    Dim oComm = New OleDbCommand(oQuery, cnn)
        oComm.ExecuteNonQuery()

之后,我可以毫无问题地使用INNER JOIN了:

Dim Sql As String = "SELECT FloatTable.DateAndTime, FloatTable.Millitm, FloatTable.TagIndex, FloatTable.Val, StringTable.TagIndex"
    Sql += " FROM FloatTable INNER JOIN StringTable ON FloatTable.ID = StringTable.ID"

谢谢

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用OleDbDataReader vb显示我的查询数据

来自分类Dev

如何使用OleDbDataReader vb显示我的查询数据

来自分类Dev

使用存储过程vb.net显示数据

来自分类Dev

使用INNER JOIN显示SQL表中的最新日期

来自分类Dev

SQL 如何使用 INNER JOIN 从表中删除数据

来自分类Dev

使用scriptblock vb.net刷新数据

来自分类Dev

使用VB.NET显示从数据网格视图到TextBox的选定行

来自分类Dev

在vb.net中使用linq从数据库显示列表

来自分类Dev

vb.net Postgresql 数据库,使用DataTable 并在Datagridview 中显示位图

来自分类Dev

SQL INNER JOIN与使用WHERE的LEFT JOIN

来自分类Dev

使用Join / coalesce更新语句以在gridview上显示数据

来自分类Dev

如何在 SQL (PHP) 中使用 JOIN 显示数据

来自分类Dev

来自vb.net的水晶报表中没有数据显示,使用SQL的数据集

来自分类Dev

在INNER JOIN未找到其他结果的情况下显示数据库结果

来自分类Dev

在INNER JOIN未找到其他结果的情况下显示数据库结果

来自分类Dev

用INNER JOIN从两个SQL表中取数据,显示HTML表

来自分类Dev

Linq Join在VB.NET中使用Lambda

来自分类Dev

使用INNER JOIN的SQL Server存储过程

来自分类Dev

PHP PDO使用INNER JOIN选择

来自分类Dev

使用LEFT和INNER JOIN创建视图

来自分类Dev

在INNER JOIN中使用MAX-SQL

来自分类Dev

使用INNER JOIN的mySQL查询的打印结果

来自分类Dev

PHP PDO使用INNER JOIN选择

来自分类Dev

SQL使用INNER JOIN更新选定的行

来自分类Dev

如何在不使用数据库的情况下在VB.NET的DataGridView中显示数组?

来自分类Dev

如何在不使用数据库的情况下在VB.NET的DataGridView中显示数组?

来自分类Dev

VB.net使用system.directoryservices获得显示名称

来自分类Dev

MySQL不使用INNER JOIN在单独的表中显示重复的列名

来自分类Dev

当我使用 INNER JOIN 时,MariaDB 没有显示任何结果

Related 相关文章

  1. 1

    如何使用OleDbDataReader vb显示我的查询数据

  2. 2

    如何使用OleDbDataReader vb显示我的查询数据

  3. 3

    使用存储过程vb.net显示数据

  4. 4

    使用INNER JOIN显示SQL表中的最新日期

  5. 5

    SQL 如何使用 INNER JOIN 从表中删除数据

  6. 6

    使用scriptblock vb.net刷新数据

  7. 7

    使用VB.NET显示从数据网格视图到TextBox的选定行

  8. 8

    在vb.net中使用linq从数据库显示列表

  9. 9

    vb.net Postgresql 数据库,使用DataTable 并在Datagridview 中显示位图

  10. 10

    SQL INNER JOIN与使用WHERE的LEFT JOIN

  11. 11

    使用Join / coalesce更新语句以在gridview上显示数据

  12. 12

    如何在 SQL (PHP) 中使用 JOIN 显示数据

  13. 13

    来自vb.net的水晶报表中没有数据显示,使用SQL的数据集

  14. 14

    在INNER JOIN未找到其他结果的情况下显示数据库结果

  15. 15

    在INNER JOIN未找到其他结果的情况下显示数据库结果

  16. 16

    用INNER JOIN从两个SQL表中取数据,显示HTML表

  17. 17

    Linq Join在VB.NET中使用Lambda

  18. 18

    使用INNER JOIN的SQL Server存储过程

  19. 19

    PHP PDO使用INNER JOIN选择

  20. 20

    使用LEFT和INNER JOIN创建视图

  21. 21

    在INNER JOIN中使用MAX-SQL

  22. 22

    使用INNER JOIN的mySQL查询的打印结果

  23. 23

    PHP PDO使用INNER JOIN选择

  24. 24

    SQL使用INNER JOIN更新选定的行

  25. 25

    如何在不使用数据库的情况下在VB.NET的DataGridView中显示数组?

  26. 26

    如何在不使用数据库的情况下在VB.NET的DataGridView中显示数组?

  27. 27

    VB.net使用system.directoryservices获得显示名称

  28. 28

    MySQL不使用INNER JOIN在单独的表中显示重复的列名

  29. 29

    当我使用 INNER JOIN 时,MariaDB 没有显示任何结果

热门标签

归档