繁体   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