如何使用vb.net更新MSAccess数据库

时间:2019-01-02 19:32:53

标签: database vb.net ms-access

我正在尝试编写一种方法来接受查询作为参数,然后运行该查询以将行添加到数据库中或编辑数据库中的数据。我正在使用MS Access DB,Visual Studio编写我的代码,以及使用VB.net作为编码语言。我使用了一种可以从数据库查询数据并对其进行修改以修改数据库中数据的方法。那是事情不太正常的地方。这是我修改的代码:

这是我要传递给方法的查询

query = "INSERT INTO TABLE ([Column 1], [Column 2]) VALUES ([GOTIT], 121212)"

这是我试图工作的方法

Public Sub ExecEditQuery(Query As String)
    'reset variables
    Exception = ""

    Try
        'open a connection (already declared as private variable: Private DBCon As New OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;" &
                                    ' "Data Source=Database.mdb;"))
        DBCon.Open()

        'create DB command
        DBCmd = New OleDbCommand(Query, DBCon)

        'execute command
        DBCmd.ExecuteNonQuery()

    Catch ex As Exception
        Exception = ex.Message
    End Try

    'close DB connection
    If DBCon.State = ConnectionState.Open Then DBCon.Close()

1 个答案:

答案 0 :(得分:0)

要连接到数据库,您需要调暗以下变量:

Public Filename As String = $"{AppDomain.CurrentDomain.BaseDirectory}YourDatabase.accdb"
Public ConStr As String = $"PROVIDER=Microsoft.ACE.OLEDB.12.0;DATA Source = {Filename}"
Public DBCon As OleDb.OleDbConnection = New OleDb.OleDbConnection(ConStr)

请记住,如果您要输入字符串,请记住将其用引号引起来。 另外,如果您输入的是SQL保留的表或字段,则该字段会以反斜线(`)

例如:

DBCon.Open()

DBCmd = New OleDbCommand($"INSERT INTO `User` (Username) VALUES ('{Username}')", DBCon)

DBCmd.ExecuteNonQuery()

关于您的查询,尝试重写为

query = $"INSERT INTO TABLE ([Column 1], [Column 2]) VALUES ('{GOTIT}', 121212)"