Как использовать vb.net для обновления базы данных MSAccess - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь написать метод для принятия запроса в качестве параметра, а затем выполнить этот запрос, чтобы добавить строку в строку или отредактировать данные в моей базе данных. Я использую 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 голосов
/ 02 января 2019

Чтобы подключиться к базе данных, вам нужно затемнить следующие переменные:

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)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...