Imports System.Data.Odbc
Imports System.Data
Partial Class VIEW_SALARY_DETAILS
Inherits System.Web.UI.Page
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim cons, query As String
Dim con As OdbcConnection
Dim adpt As OdbcDataAdapter
cons = "dsn=Courier; UID=Courier; PWD=123;"
con = New OdbcConnection(cons)
con.Open()
query = "select * from EMPLOYEE"
Dim ds As DataSet
adpt = New OdbcDataAdapter(query, con)
ds = New DataSet
adpt.Fill(ds, "Courier")
GridView1.DataSource = ds.Tables()
con.Close()
End Sub
End Class
我写了上面的代码,但它没有显示数据。 在VB.NET应用程序中也可以这样做。 我们如何为ASP.net 4.0做到这一点?
答案 0 :(得分:0)
您需要调用DataBind()
方法。试试这个
GridView1.DataSource = ds.Tables()
DataBind()
答案 1 :(得分:0)
你错过了一行
GridView1.DataSource = ds.Tables[0] //do some correction here..
GridView1.DataBind(); // add this line
您需要将GridView与数据源绑定..
您的代码将是
Imports System.Data.Odbc
Imports System.Data
Partial Class VIEW_SALARY_DETAILS
Inherits System.Web.UI.Page
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim cons, query As String
Dim con As OdbcConnection
Dim adpt As OdbcDataAdapter
cons = "dsn=Courier; UID=Courier; PWD=123;"
con = New OdbcConnection(cons)
con.Open()
query = "select * from EMPLOYEE"
Dim ds As DataSet
adpt = New OdbcDataAdapter(query, con)
ds = New DataSet
adpt.Fill(ds, "Courier")
GridView1.DataSource = ds.Tables[0]
GridView1.DataBind()
con.Close()
End Sub
End Class
确保您使用的连接或sql字符串正确无误。
答案 2 :(得分:0)
我建议:
假设这个标记:
所以我们拖入了一个按钮和一个网格视图。
现在,双击按钮,我们得到/拥有这个代码存根:
Imports System.Data.SqlClient
Public Class HotelGrid
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Sub LoadGrid()
Using cmdSQL As New SqlCommand("SELECT ID, FirstName, LastName, HotelName, City from tblHotels",
New SqlConnection(My.Settings.TEST3))
cmdSQL.Connection.Open()
GridView1.DataSource = cmdSQL.ExecuteReader
GridView1.DataBind()
End Using
End Sub
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
LoadGrid()
End Sub
End Class
注意这里的一些重要事项。
首先我非常推荐一般的sql数据拉取,使用sql命令对象。
为什么?
嗯,命令对象有:
A place to hold/have/set the sql (sql command text)
A connection object - no need to create a separate one
A data reader - no need to create a separate one
换句话说,sql 命令对象具有所有三个基本位和部分来提取数据。
而且我们经常想说某种记录集(数据表),所以我们可以这样做:
dim MyTable as new DataTable
Using cmdSQL As New SqlCommand("SELECT ID, FirstName, LastName, HotelName, City from tblHotels",
New SqlConnection(My.Settings.TEST3))
cmdSQL.Connection.Open()
MyTable.load(cmdSQL.ExecuteReader)
GridView1.DataSource = MyTable
GridView1.DataBind()
End Using
所以请注意上面我们是如何创建数据表对象的。然后可以将该数据表与 for/each 进行交互。您甚至可以编辑该表中的数据,或者如上所示,使用数据加载数据表 - 然后将其分配给网格视图。
结果输出是这样的:
仅供参考: 在我的示例中,我使用了 sqlclient 提供程序。在您的情况下,您使用的是 ODBC 提供程序。所以上面的代码将完全相同,但现在使用 ODBC,我们得到:
所以代替 ado.net (sql Client),您使用 ODBC。所以你有一个
Imports System.Data.Odbc
因此我们的加载网格代码可以/将是这样的:
Sub LoadGrid2()
Using cmdSQL As New OdbcCommand("SELECT ID, FirstName, LastName, HotelName, City from tblHotels",
New OdbcConnection(My.Settings.TEST3ODBC))
cmdSQL.Connection.Open()
GridView1.DataSource = cmdSQL.ExecuteReader
GridView1.DataBind()
End Using
End Sub
所以,请注意代码是如何真正“相同”的,但只是使用不同的提供程序(在您的情况下为 ODBC)。
您仍然可以声明并使用一个“数据表”来保存查询结果。