KD209 Ответов: 1

VS 2013 - проблема подключения к БД access


Привет,

Мне очень трудно заставить Visual Studio подключиться к базе данных Access после события button_click. Я перепробовал все, но всегда получал ошибку: "ExecuteNonQuery: свойство соединения не было инициализировано."

Вот код:

Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Data.OleDb


Public Class Form1

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        Label1.Text = Date.Now
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

        Dim connStr As String
        connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Tech\LoanerTracking.accdb"

        Dim objConn As New OleDbConnection(connStr)

        'objConn = CreateObject("ADODB.Connection")

        Dim str As String
        str = "insert into [TrackingInfo] ([UserName], [AssetType], [BadgeNumber], [AssetBarcode], [DateNTime]) values (?, ?, ?, ?, ?)"
        Dim cmd As OleDbCommand = New OleDbCommand(str)


        objConn.Open()

        Try
            cmd.Parameters.Add(New OleDbParameter("UserName", CType(Me.Controls("ListBox1").Text, String)))
            cmd.Parameters.Add(New OleDbParameter("AssetType", CType(Me.Controls("ListBox2").Text, String)))
            cmd.Parameters.Add(New OleDbParameter("BadgeNumber", CType(Me.Controls("TextBox1").Text, String)))
            cmd.Parameters.Add(New OleDbParameter("AssetBarcode", CType(Me.Controls("TextBox2").Text, String)))
            'cmd.Parameters.Add(New OleDbParameter("CheckedOut", Text = 1))
            cmd.Parameters.Add(New OleDbParameter("DateNTime", CType(Me.Controls("Label1").Text, String)))
            cmd.ExecuteNonQuery()
            cmd.Dispose()
            objConn.Close()

            MsgBox("Records Inserted Successfully")
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

    End Sub

End Class


Что я уже пробовал:

Я попытался изменить параметры соединения, определив их под DIM, а также попытался связать их вместе с помощью многозначных переменных.

1 Ответов

Рейтинг:
4

F-ES Sitecore

Это команда, которую вы выполняете, но где вы говорите ей использовать соединение, определенное objConn? Как команда узнает, какую базу данных выполнять? Вам нужно указать команде, какое соединение использовать

Dim cmd As OleDbCommand = New OleDbCommand(str)
cmd.Connection = objConn
objConn.Open()


KD209

Это сделало свое дело. Спасибо, я не знаю, как я упускаю из виду установку команды!