1
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 做到这一点?

4

3 回答 3

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 字符串应该是正确的。

于 2012-09-16T13:35:07.893 回答
0

您需要调用该DataBind()方法。尝试这个

DataSet ds= new DataSet();    
GridView1.DataSource = ds.Tables();
GridView1.DataBind();
于 2012-09-16T12:30:46.700 回答
0

我建议这样做:

假设这个标记:

在此处输入图像描述

所以我们拖入了一个按钮和一个gridview。

现在,双击按钮,我们得到/拥有这个代码存根:

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,我们得到这个:

因此,您使用 ODBC 代替 ado.net(sql 客户端)。所以你有一个

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)。

您仍然可以声明并使用“数据表”来保存查询结果。

于 2021-05-18T21:35:58.513 回答