我正在创建一个使用所有其他.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
答案 0 :(得分:0)
两个页面都包含文件顶部的Imports System.Data
吗? (我在提供的代码中没有看到它。)DataSet
位于该命名空间中,因此您需要导入该命名空间以便在不完全限定它的情况下引用该类。