sqlite - 我需要帮助为我的类(class)创建一个明确的内部连接

标签 sqlite ms-access-2010 vb.net-2010

我有一个 Microsoft Access 2010 数据库,其中包括 Bookings 和 Customer 表。主表是 Bookings 表。 Customer 表通过其客户 ID 链接到 Bookings 表,客户 ID 是 Bookings 表中的外键。我想检索与某个预订相关联的客户的电子邮件地址。但是,语法错误消息不断出现,我无法确定错误在 SQL 中的位置。

这是我的计算机科学类(class)。我需要做一个酒店房间预订系统。我正在尝试在客户预定到达前一周向客户发送自动提醒电子邮件。我在 VB.Net 2010 express 中对其进行编程,并为其设置了 Microsoft Access 2010 数据库。

  • 我多次检查了所有表和列的名称,但没有一个拼写错误。
  • 我已经阅读了可汗学院关于连接的教程,并使用 SQLite 接口(interface)来测试我的查询。它在那里工作,但不在我的系统中。

  • 这是我的代码:
    Imports System.Data.OleDb
    
    Dim CN As OleDbConnection
    Dim DR As OleDbDataReader
    Dim SQL As String
    
    Sub OpenDatabase()
        CN = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Coursework Prototype Database.mdb;")
        CN.Open()
    End Sub
    
    Public Sub ExecuteSQL()
        Dim CM As New OleDbCommand(SQL, CN)
        DR = CM.ExecuteReader
    End Sub
    
    Sub RetrieveCustomerEmail()
        OpenDatabase()
        SQL = ("SELECT tblCustomer.Email_Address FROM tblBookings JOIN tblCustomer ON tblBookings.CustomerID = tblCustomer.CustomerID Where tblBookings.BookingID = 1")
        ExecuteSQL()
        DR.Read()
    
        Dim CustomerEmail As String = DR.Item("Email_Address").ToString
        CN.Close()
    End Sub
    

    我希望结果是一个电子邮件地址,但我只是收到一条语法错误消息

    Syntax error in FROM clause.

    最佳答案

    MS Access 要求将内部连接明确声明为 INNER JOIN ,并且不会解释 JOIN其他 RDBMS 接受的内部连接的简写。

    因此,您的 SQL 语句需要:

    SELECT tblCustomer.Email_Address 
    FROM tblBookings INNER JOIN tblCustomer ON tblBookings.CustomerID = tblCustomer.CustomerID
    WHERE tblBookings.BookingID = 1
    

    关于sqlite - 我需要帮助为我的类(class)创建一个明确的内部连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54063780/

    相关文章:

    android - SQLite 数据库助手类

    java - 为什么Android Studio一直说没有标题栏?

    vba - Access VBA 中的 "Duplicate declaration in current scope"错误

    sql - 查询过于复杂

    asp.net - 关闭PC时ASP页面崩溃

    vb.net - 如何使用客户端 vb.net 程序将数据上传到具有有效 SSL 证书的服务器?

    android - SQLITE 支持 XML 查询吗?

    android - 关于在 Android 中以编程方式备份​​ Google Drive 上的 Sqlite 文件和照片的示例项目

    sql-server - 向存储过程发送参数 vb.net