【发布时间】:2018-03-04 03:36:08
【问题描述】:
已经看过与我类似的问题,但它们都不适合我这是我的代码
dbconn = New SqlConnection
dbconn.ConnectionString = ("Data Source=JENELIE\SQLEXPRESS;Initial Catalog=feeding_monitoring_system;User ID=sa;Password=Jenelie19; MultipleActiveResultSets = true")
Dim reader As SqlDataReader
Dim sda As New SqlDataAdapter
Dim ds As New DataSet()
Try
dbconn.Open()
Dim sql As String
sql = "select Count (Gender) as NumberofStudent, Gender from Student_Info Group by Gender"
dbcomm = New SqlCommand(sql, dbconn)
reader = dbcomm.ExecuteReader
sda.SelectCommand = dbcomm
sda.Fill(ds, "Student_Info")
Catch ex As SqlException
MessageBox.Show(ex.Message)
Finally
dbconn.Dispose()
End Try
【问题讨论】:
-
异常意味着它所说的 - 你刚刚打开了阅读器 2 行。不要创建你不需要的东西,所有你的 DBProvider 对象应该在
Using块中使用 -
你不使用那个阅读器,你在那里做什么?
-
不要在它们使用的范围之外声明变量并且不要使用
New。这会创建一个新对象,一旦将新对象分配给变量,该对象就会被丢弃。例如,写Dim dbcomm = New SqlCommand(sql, dbconn)足以在try 块内部 创建一个新命令。Dim reader = dbcomm.ExecuteReader也是如此。 -
而且您不应该在公共网站上公开您的密码。
标签: vb.net sqldatareader