簡體   English   中英

VB.NET SQL訪問插入語句

[英]VB.NET SQL ACCESS Insert Statement

NET,我正在嘗試使用sql將數據插入到Access數據庫中,我具有下面的代碼,當我嘗試執行時,它提示我一條錯誤消息並突出顯示con.open()我不明白為什么它不起作用,誰能指導我。 謝謝

 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles AddBut.Click

        Dim dbProvider = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source= c:\Databse\Company_db.accdb"
        Dim dbSource = "Data Source= C:\Databse\Company_db.accdb"

        Dim empNum As String
        Dim empFname As String
        Dim empLname As String
        Dim empDept As String
        Dim empStat As String
        Dim empYears As String


        empNum = eNumText.Text
        empFname = empFnameText.Text
        empLname = empLnameText.Text
        empDept = Deptd.Text
        empStat = Statd.Text
        empYears = yearstext.Text




        Dim sql = "INSERT INTO tbl_empinfo (EmpID, FirstName, LastName, Department, Status, Years " & _
           ") " & _
           "Values(empNum, empFname, empLname, empDept, empStat, empYears)"

        con.ConnectionString = dbProvider & dbSource
        Using cmd = New OleDb.OleDbCommand(sql, con)
            con.Open()
            cmd.Parameters.AddWithValue("EmpID", empNum)
            cmd.Parameters.AddWithValue("FirstName", empFname)
            cmd.Parameters.AddWithValue("LastName", empLname)
            cmd.Parameters.AddWithValue("Department", empDept)
            cmd.Parameters.AddWithValue("Status", empStat)
            cmd.Parameters.AddWithValue("Years", empYears)
            cmd.ExecuteNonQuery()

        End Using


        con.Close()
    End Sub

標准問題,當您在其他情況下還不錯的SQL語句中看到語法錯誤時,請為基礎數據庫查找RESERVED KEYWORDS。

在您的情況下,詞POSITION是MS-ACCESS的保留關鍵字。
放在方括號之間

Dim sql = "INSERT INTO tbl_empinfo (EmpID, FirstName, LastName, Department, " & _ 
          "[Position], Status, Years) " & _ 
          "Values(empNum, empFname, empLname, empDept, empStat, empYears)"

但是,您在該查詢中還有另一個錯誤。 您要插入7個字段,但僅傳遞6個參數,僅缺少POSITION字段的參數。

您還需要修復連接字符串。 你寫

  con.ConnectionString = dbProvider & dbSource

但這會導致文件名無效

  "Provider=Microsoft.ACE.OLEDB.12.0; Data Source= 
   c:\Databse\Company_db.accdbData Source= C:\Databse\Company_db.accdb"

(為了便於閱讀,對行進行了拆分)

我認為您已經初始化了“ OleDbConnection”對象。

嘗試從數據庫的“屬性”窗口獲取連接字符串(在“服務器資源管理器”窗口中,右鍵單擊數據庫的“選擇屬性”選項)。

當您打開連接時,請使用以下代碼:

    If con.State = ConnectionState.Closed Then
        con.Open()
    End If

希望對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM