我的代码和/或连接需要帮助。我收到的错误是:
未处理的类型' System.InvalidOperationException'发生在System.Data.dll
中附加信息:ExecuteReader需要一个开放且可用的连接。连接的当前状态已关闭。
在此代码中:(第4行)
cmd.Connection = cn
cmd.CommandText = "SELECT ID, LastName, FirstName FROM tblMembers WHERE ID = @ID"
cmd.Parameters.Add(New SqlClient.SqlParameter("@ID", SqlDbType.Int)).Value = dg1.Item(0, e.RowIndex).Value
dr = cmd.ExecuteReader
If dr.HasRows() Then
With dr
.Read()
txtLname.Text = dr("LastName")
txtFname.Text = dr("FirstName")
End With
End If
但是如果我尝试打开连接。发生这种情况。
未处理的类型' System.InvalidOperationException'发生在System.Data.dll
中其他信息:连接未关闭。连接的当前状态已打开。
使用以下代码:(第1行)
cn.Open()
cmd.Connection = cn
cmd.CommandText = "SELECT ID, LastName, FirstName FROM tblMembers WHERE ID = @ID"
cmd.Parameters.Add(New SqlClient.SqlParameter("@ID", SqlDbType.Int)).Value = dg1.Item(0, e.RowIndex).Value
dr = cmd.ExecuteReader
If dr.HasRows() Then
With dr
.Read()
txtLname.Text = dr("LastName")
txtFname.Text = dr("FirstName")
End With
End If
答案 0 :(得分:0)
Dim cn As SqlConnection
Dim cmd As SqlCommand
Dim dr As SqlDataReader
Dim connetionString As String
Dim Process_Id As String
Dim Processname As String
connetionString = "Data Source=ServerName;Initial Catalog=DataBaseName;User ID=UserName;Password=PassWord"
cn = New SqlConnection(connetionString)
cn.Open()
cmd = New SqlCommand("SELECT Process_Id,Processname FROM dbo.Process_Master where Process_Id = @ID", cn)
cmd.Parameters.Add(New SqlClient.SqlParameter("@ID", SqlDbType.Int)).Value = "21"
dr = cmd.ExecuteReader
If dr.HasRows() Then
With dr.Read()
Process_Id = dr("Process_Id")
Processname = dr("Processname")
End With
End If