【发布时间】:2011-07-27 02:26:34
【问题描述】:
我正在创建一个 ASP.NET 2.0 Web 应用程序,它使用由所有其他 .aspx 页面继承的 BasePage.aspx。我设计了一个包含 3 个存储过程的数据集,称为 dsBaseInfo。我将它声明为类的私有成员,当我运行应用程序时,它告诉我未定义 dsBaseInfo 类型。我还尝试了一个 Dataset 而不是我的 dsBaseInfo 并且我得到了同样的错误,类型未定义。我已经尝试将 Private dsBase 作为 dsBaseInfo,将 Private dsBase 作为 dsBaseInfo = nothing,将 Private dsBase 作为新的 dsBaseInfo,将 Private dsBase 作为 Dataset,等等。我什至尝试将声明移动到 PreInit 子和相同的错误。我还在继承 BasePage 的 .aspx 中将 Private dsBAse as 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
【问题讨论】: