代码如下
......
Inherits System.Web.UI.Page
Public sqlConnect As New SqlConnection
Public sqlCom As New SqlCommand
Public sqlData As SqlDataReader
...........
Public Function ConnectData() As Boolean
Dim strSql As String
Dim strUserName As String
strSql = System.Configuration.ConfigurationSettings.AppSettings.Get("conn") & System.Configuration.ConfigurationSettings.AppSettings.Get("Master")
sqlConnect.ConnectionString = strSql
sqlConnect.Open()
sqlCom.Connection = sqlConnect sqlCom.CommandText = "Select * From tbl_Usr_UserManager"
sqlData =sqlCom.ExecuteReader()'错误点
end
为什么执行到错误点那里会提示
”已有打开的与此连接相关联的 DataReader,必须首先将它关闭“
请问怎样才能解决这个问题呢?
......
Inherits System.Web.UI.Page
Public sqlConnect As New SqlConnection
Public sqlCom As New SqlCommand
Public sqlData As SqlDataReader
...........
Public Function ConnectData() As Boolean
Dim strSql As String
Dim strUserName As String
strSql = System.Configuration.ConfigurationSettings.AppSettings.Get("conn") & System.Configuration.ConfigurationSettings.AppSettings.Get("Master")
sqlConnect.ConnectionString = strSql
sqlConnect.Open()
sqlCom.Connection = sqlConnect sqlCom.CommandText = "Select * From tbl_Usr_UserManager"
sqlData =sqlCom.ExecuteReader()'错误点
end
为什么执行到错误点那里会提示
”已有打开的与此连接相关联的 DataReader,必须首先将它关闭“
请问怎样才能解决这个问题呢?
Dim strSql As String
Dim strUserName As String
strSql = System.Configuration.ConfigurationSettings.AppSettings.Get("conn") & System.Configuration.ConfigurationSettings.AppSettings.Get("Master")
sqlConnect.ConnectionString = strSql
try
sqlConnect.Open()
sqlCom.Connection = sqlConnect sqlCom.CommandText = "Select * From tbl_Usr_UserManager"
sqlData =sqlCom.ExecuteReader()'错误点 'sqlData.Read()'....
Catch Finally
sqlData.Close
sqlConnect.Close
end
SqlDataReader sqlData;
sqlData.Close();
sqlData =sqlCom.ExecuteReader();
我用C#的写法,楼主看看行不行
这样更妥
Catch 空在哪里是要你自己去添加异常错误处理。去多了解些OOP概念吧!
Public sqlCom As New SqlCommand
Public sqlData As SqlDataReader Sub Page_Load(ByVal Sender As Object, ByVal e As EventArgs) Handles MyBase.Load Dim ConnStr As String
Dim Server As String = ConfigurationSettings.AppSettings("Server") ''数据库服务器
Dim DataBase As String = ConfigurationSettings.AppSettings("DataBase") ''数据库名称
Dim UserID As String = ConfigurationSettings.AppSettings("UserID") ''用户名
Dim Password As String = ConfigurationSettings.AppSettings("Password") ''密码 ConnStr = "Persist Security Info=False;Data Source=" & Server & ";Initial Catalog=" & DataBase & ";User ID=" & UserID & ";Password=" & Password sqlConnect.ConnectionString = ConnStr
sqlConnect.Open()
sqlCom.Connection = sqlConnect
sqlCom.Connection = sqlConnect
sqlCom.CommandText = "Select * from 学期" sqlData = sqlCom.ExecuteReader() End Sub
我把楼主的程序放到我的机子上测试一下,改成我的数据,没有问题啊。
Public Function ConnectData() As Boolean
Dim strSql As String
Dim strUserName As String
strSql = System.Configuration.ConfigurationSettings.AppSettings.Get("conn") & System.Configuration.ConfigurationSettings.AppSettings.Get("Master")
sqlConnect.ConnectionString = strSql
try
sqlConnect.Open()
sqlCom.Connection = sqlConnect sqlCom.CommandText = "Select * From tbl_Usr_UserManager" dim dr as sqlDataReader=sqlCom.ExecuteReader()
'sqlData =sqlCom.ExecuteReader()'错误点 if sqlData.Read()then
'在这里读取数据记录
End if
dr.Close()
Catch
'错误处理
Finally
sqlConnect.Close
end try
end
sqlCom.Connection = sqlConnect
sqlConnect.Open()
sqlCom.CommandText = "Select * From tbl_Usr_UserManager"
sqlData =sqlCom.ExecuteReader()'错误点
Dim strSql As String
Dim strUserName As String
strSql = System.Configuration.ConfigurationSettings.AppSettings.Get("conn") & System.Configuration.ConfigurationSettings.AppSettings.Get("Master")
Dim sqlConnect As SqlConnection = New SqlConnection(strSql)
Dim sqlCom As SqlCommand = New SqlCommand("Select * From tbl_Usr_UserManager", sqlConnect)
sqlConnect.Close()
sqlConnect.Open()
Dim sqlData As SqlDataReader = sqlCom.ExecuteReader()'Error