0

我们正在开发一个带有 SQL Server 数据库的 ASP.Net Web 应用程序,并希望在主页显示时使用在学校注册的学生总数填充 ASP.Net 标签控件。

我们使用数据集设计器创建了以下强类型控件:

DataTable: Students
DataSet: DataSetAllStudents
TableAdapter: StudentsTableAdapter

在 VB.Net 代码隐藏文件中,我使用以下代码开始获取注册学生总数的过程。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    Dim studentsAdapter As New DataSetAllStudentsTableAdapters.StudentsTableAdapter
    Dim studentsTableRow As Knowledge_Academy.Students

    studentsTableRow = studentsAdapter.GetData

End Sub

我们在这行代码中得到一个错误:

studentsTableRow = studentsAdapter.GetData

这是错误:

Value of type 'Knowledge_Academy.DataSetAllStudents.StudentsDataTable' cannot be 
converted to 'Knowledge_Academy.Students'.

GetData 包含将返回注册学生总数的查询。我们还想知道如何将值返回到这个 ASP.Net 标签控件中。

<asp:Label ID="LabelTotalNumberOfStudents" runat="server" Text="Label"></asp:Label>
4

1 回答 1

1

首先,确保仅在第一次加载时加载数据,而不是在每次回发时加载。其次,由于GetData返回 aDataTable所有行,您可以使用它的Rows.Count属性:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        Dim daStudents = New DataSetAllStudentsTableAdapters.StudentsTableAdapter()
        Dim tblStudents = studentsAdapter.GetData()
        LblStudentNumber.Text = String.Format("{0}", tblStudents.Rows.Count)
    End If
End Sub

当然,最好向TableAdapter返回标量值和学生人数的新查询添加一个新查询。那将需要更少的资源。

于 2012-11-09T16:39:15.330 回答