ExecuteNonQuery: свойство подключения не было инициализировано VB

Получая ошибку здесь не уверен, почему это не открытие соединения. Надеюсь, кто-то может мне помочь.

 Protected Sub Btn_Submit_Click(ByVal sender As System.Object, e As System.EventArgs) Handles Btn_Submit.Click
    Dim Sqlstr As String
    Dim con As SqlConnection
    Dim connectionString As String = "Data Source=DB\TEST;Initial Catalog=Orders;Integrated Security=True"
    Dim cmdInsert As New SqlCommand(Sqlstr, con)
    Sqlstr = "insert into customers(FirstName,LastName,Email,Phone,Address,City,State,Zip) values (@FirstName,@LastName,@Email,@Phone,@Address,@City,@State,@Zip)"
    Try
        Using connection As New SqlConnection(connectionString)
            connection.Open()
            cmdInsert.Parameters.Add("@FirstName", Data.SqlDbType.NVarChar).Value = FirstName.Text()
            cmdInsert.Parameters.Add("@LastName", Data.SqlDbType.NVarChar).Value = LastName.Text
            cmdInsert.Parameters.Add("@Email", Data.SqlDbType.NVarChar).Value = Email.Text
            cmdInsert.Parameters.Add("@Phone", Data.SqlDbType.NChar).Value = Phone.Text
            cmdInsert.Parameters.Add("@Address", Data.SqlDbType.NVarChar).Value = Address.Text
            cmdInsert.Parameters.Add("@City", Data.SqlDbType.NVarChar).Value = City.Text
            cmdInsert.Parameters.Add("@State", Data.SqlDbType.NVarChar).Value = State.Text
            cmdInsert.Parameters.Add("@Zip", Data.SqlDbType.NChar).Value = Zip.Text
            cmdInsert.ExecuteNonQuery()
            connection.Close()
        End Using
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
 Marcel N.14 мая 2013 г., 22:38
Вам необходимо назначить соединение для команды. Или используйте.cmdInsert = connection.CreateCommand()
 Rango14 мая 2013 г., 22:42
Поэтому используйте только оператор using для соединений (или все остальное, реализующееIDisposable). Ты неСначала нужно объявить соединение. Тот'просто источник таких ошибок.

Ответы на вопрос(4)

а другой - в вашем операторе using. Создайте SqlCommand после оператора using и передайте соединение конструктору.

когда соединение не объявлено / не обновлено

решение простое

dim con as new SqlConnection 
con.connectionString = "Provide your SQL connection"
con.open
'write code or action you want to perform
con.close

Надеюсь, поможет.

Решение Вопроса

SqlCommand перед созданием и открытием фактического соединения SQL выпытаемся использовать для выполнения команды.

Я считаю, что это то, что исправит ваш код (я переместил вызов вставки вusing объем):

Protected Sub Btn_Submit_Click(ByVal sender As System.Object, e As System.EventArgs) Handles Btn_Submit.Click
Dim Sqlstr As String
Dim connectionString As String = "Data Source=DB\TEST;Initial Catalog=Orders;Integrated Security=True"
Sqlstr = "insert into customers(FirstName,LastName,Email,Phone,Address,City,State,Zip) values (@FirstName,@LastName,@Email,@Phone,@Address,@City,@State,@Zip)"

Try
    Using connection As New SqlConnection(connectionString)

        connection.Open()

        Dim cmdInsert As New SqlCommand(Sqlstr, connection)  <----- **** Moved this here, changed the connection

        cmdInsert.Parameters.Add("@FirstName", Data.SqlDbType.NVarChar).Value = FirstName.Text()
        cmdInsert.Parameters.Add("@LastName", Data.SqlDbType.NVarChar).Value = LastName.Text
        cmdInsert.Parameters.Add("@Email", Data.SqlDbType.NVarChar).Value = Email.Text
        cmdInsert.Parameters.Add("@Phone", Data.SqlDbType.NChar).Value = Phone.Text
        cmdInsert.Parameters.Add("@Address", Data.SqlDbType.NVarChar).Value = Address.Text
        cmdInsert.Parameters.Add("@City", Data.SqlDbType.NVarChar).Value = City.Text
        cmdInsert.Parameters.Add("@State", Data.SqlDbType.NVarChar).Value = State.Text
        cmdInsert.Parameters.Add("@Zip", Data.SqlDbType.NChar).Value = Zip.Text
        cmdInsert.ExecuteNonQuery()

        connection.Close()
    End Using
Catch ex As Exception
    MsgBox(ex.Message)
End Try
 Protected Sub Btn_Submit_Click(ByVal sender As System.Object, e As System.EventArgs) Handles Btn_Submit.Click
    Dim Sqlstr As String

    ' =================================================
    ' This is a declaration, not an instantiation
    ' =================================================
    Dim con As SqlConnection      

    Dim connectionString As String = "Data Source=DB\TEST;Initial Catalog=Orders;Integrated Security=True"

    ' =================================================
    ' con is Nothing here
    ' =================================================
    Dim cmdInsert As New SqlCommand(Sqlstr, con)     

    Sqlstr = "insert into customers(FirstName,LastName,Email,Phone,Address,City,State,Zip) values (@FirstName,@LastName,@Email,@Phone,@Address,@City,@State,@Zip)"
    Try

        ' =================================================
        ' connection is not what you passed to cmdInsert
        ' =================================================
        Using connection As New SqlConnection(connectionString)
            connection.Open()

Ваш ответ на вопрос