Reputation: 35
Getting an error here not sure why its not opening the connection. Hoping someone can help me.
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
Upvotes: 1
Views: 20966
Reputation: 706
Connection Sting Property Error always occur when the connection is not declared/renewed
the solution is simple
dim con as new SqlConnection
con.connectionString = "Provide your SQL connection"
con.open
'write code or action you want to perform
con.close
Hope it helps.
Upvotes: 0
Reputation: 4591
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()
Upvotes: 0
Reputation: 1143
You have the wrong scope -- you're instantiating your SqlCommand
before instantiating and opening the actual SQL connection you're trying to use to execute the command.
I believe this is what will fix your code (I moved the insert call into the using
scope):
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
Upvotes: 2
Reputation: 14531
You have two SqlConnection objects - one in Dim con As SqlConnection and then another in your using statement. Create the SqlCommand after the using statement and pass the connection in to the constructor.
Upvotes: 3