未定义ASP.NET BasePage数据集类型

时间:2011-03-31 17:22:37

标签: .net asp.net dataset

我正在创建一个使用所有其他.aspx页面继承的BasePage.aspx的ASP.NET 2.0 Web应用程序。我设计了一个包含3个存储过程的数据集,名为dsBaseInfo。我声明它是类的私有成员,当我去运行应用程序时,它告诉我没有定义dsBaseInfo类型。我也尝试了一个数据集而不是我的dsBaseInfo,我得到相同的错误,类型未定义。我已尝试将私有dsBase用作dsBaseInfo,将私有dsBase用作dsBaseInfo = nothing,将私有dsBase用作新dsBaseInfo,将私有dsBase用作数据集,依此类推。我甚至尝试将声明移动到PreInit子和同样的错误。我还在一个继承BasePage的.aspx中完成了私有dsBAse作为dsBaseInfo,它可以在该页面上运行。

Imports System
Imports System.Web.UI
Imports System.Data.SqlClient

Public Class BasePage
    Inherits System.Web.UI.Page

    Private dsBase As dsBaseInfo = Nothing    'dataset
    Private _userInfo As UserInfo

    Private Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit
        If User.Identity.IsAuthenticated Then
            _userInfo = New UserInfo

            If dsBase Is Nothing Then
                If Session("BaseInfo") Is Nothing Then
                    dsBase = New dsBaseInfo
                    RetrieveBaseInfo(dsBase)

                    Session("BaseInfo") = dsBase
                Else
                    dsBase = TryCast(Session("BaseInfo"), dsBaseInfo)
                End If
            End If

        End If

    End Sub

    Private Sub RetrieveBaseInfo(ByVal dsBase As dsBaseInfo)
        Using da As New dsBaseInfoTableAdapters.ssp_GetUserBaseInfoTableAdapter
            da.Fill(dsBase.ssp_GetUserBaseInfo, User.Identity.Name)
        End Using

        Dim intID As Integer = dsBase.ssp_GetUserBaseInfo.Rows(0)(dsBase.ssp_GetUserBaseInfo.IDColumn.ColumnName)

        Using da As New dsBaseInfoTableAdapters.ssp_GetCompaniesTableAdapter
            da.Fill(dsBase.ssp_GetCompanies, intID)
        End Using

        Using da As New dsBaseInfoTableAdapters.ssp_GetMasterMenuListTableAdapter
            da.Fill(dsBase.ssp_GetMasterMenuList, intID)
        End Using
    End Sub

End Class

1 个答案:

答案 0 :(得分:0)

两个页面都包含文件顶部的Imports System.Data吗? (我在提供的代码中没有看到它。)DataSet位于该命名空间中,因此您需要导入该命名空间以便在不完全限定它的情况下引用该类。