我正在尝试用GridView控件连接Access数据库。
下面是问题:一个成功的连接数据库查询的过程。
Protected sub Query(ByVal y as string)
Dim da As New OleDbDataAdapter(y, cn)
Dim dt As New DataTable()
da.Fill(dt)
da.Dispose()
cn.Dispose()
Me.GridView1.DataSource = dt
Me.GridView1.DataBind()
ListBox1.Visible = True
End sub我想要的是,如果第一次运行在另一个过程中没有返回值/结果,则重新运行查询。
Protected Sub btnFind_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFind.Click
x = "SELECT * From Class Where Gender ='Male' And First_name ='James' "
Query(x)
If gridview.rows.count =0 then
x= "SELECT * From Class Where Gender ='Male'"
query(x)
End If然后将结果放入列表框。
但是,在第二次运行时,我得到了"The ConnectionString property has not been initialized." on da.Fill(dt)的错误。第一次成功了。
好了,我终于改正错误了。我必须再次将cn调暗为新的OleDbConnection("Provider = Microsoft.JET.OLEDB.4.0;“& "Data Source = C:\Class.mdb"),以使用query而不是一次用于所有查询。
发布于 2012-05-29 20:16:27
使用相同的方法创建和处置连接
Protected Sub Query(ByVal y as string)
Dim dt As New DataTable()
Using cn as New OleDbConnection("your_connection_string"), _
da As New OleDbDataAdapter(y, cn)
da.Fill(dt)
End Using
Me.GridView1.DataSource = dt
Me.GridView1.DataBind()
End Subhttps://stackoverflow.com/questions/10797964
复制相似问题