这里得到一个错误,不知道为什么它没有打开连接。希望有人可以帮助我。
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
答案 0 :(得分:3)
你有两个SqlConnection对象 - 一个在Dim con As SqlConnection中,另一个在你的using语句中。在using语句之后创建SqlCommand并将连接传递给构造函数。
答案 1 :(得分:2)
你的范围错误 - 在实例化和打开你试图用来执行命令的实际SQL连接之前,你实例化你的SqlCommand
。
我相信这会修复您的代码(我将插入调用移到了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
答案 2 :(得分:0)
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()
答案 3 :(得分:0)
连接Sting属性错误始终在未声明/续订连接时发生
解决方案很简单
dim con as new SqlConnection
con.connectionString = "Provide your SQL connection"
con.open
'write code or action you want to perform
con.close
希望它有所帮助。