那里面用session应该是HttpContext.Current.Session("schoolid"))

解决方案 »

  1.   

    cache应该也是那样用,如果你是写在一个单独的类模块!
      

  2.   

    先谢谢 zhanqiangz(闲云野鹤)的回答,这个我试过了,没加这个之前,提示的错误是:“只有在配置文件或 Page 指令中将启用会话状态设置为真时,才可以使用会话状态”,加了以后,错误变为:“未将对象引用设置到对象的实例”!
    真的是让人郁闷,不知道为什么不使用New()时,为什么可以直接使用session???
      

  3.   

    我在程序页里写的:
    HttpContext.Current.Cache("url") = String.Concat(Request.UserHostAddress)’举个例子
    在类里写的:
    Sub New()
        DBName = String.Concat(HttpContext.Current.Cache("url"))
        _Conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("../data/" + DBName + ".mdb")) '../bwm3.mdb  
        _Conn.Open()
    End Sub
    结果错误提示是:“找不到文件 'E:\wwwroot\data\.mdb'”,也就是说cache没有传递过来值,或者传了个空值。错误行指向 _Conn.Open()!!!
      

  4.   

    Server.MapPath("../data/" + DBName + ".mdb")) 
    httpcontext.current.server.mappath....
      

  5.   

    Dim DBName As String = String.Concat(Session("url"))
    这个得不到数据库名字应该用上下文的那个类用那个类 一定要确定在使用这个类之前就给Session复值 否则取不到!
      

  6.   

    to zhanqiangz(闲云野鹤) 
    试过了,还是一样的错误!to goody9807()
    请看我们后续的内容,我是在使用HttpContext.Current!而且我是在程序的开始给cache或session赋值,这之前没有数据库操作;公用类里得到cache或session的值,使之得到具体的数据库;然后打开数据库,程序可以执行数据库……
      

  7.   

    我在程序页里写的:
    HttpContext.Current.Cache("url") = String.Concat(Request.UserHostAddress)’举个例子
    在类里写的:
    Sub New()
        DBName = String.Concat(HttpContext.Current.Cache("url"))
        _Conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("../data/" + DBName + ".mdb")) '../bwm3.mdb  
        _Conn.Open()
    End Sub
    结果错误提示是:“找不到文件 'E:\wwwroot\data\.mdb'”,也就是说cache没有传递过来值,或者传了个空值。错误行指向 _Conn.Open()!!!
    ----------------------------------------------------
    程序页里直接给Cache(“url”)=“test”
    不要用上下文那个如果还不行 就这样试试
    HttpContext.Current.Cache("url") = "test"
    直接写一个看看
      

  8.   

    Sub New()
        DBName = String.Concat(HttpContext.Current.Cache("url"))
        _Conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("../data/" + DBName + ".mdb")) '../bwm3.mdb  
        _Conn.Open()
    End Sub××××××××××××××××××××××
    你在哪里添加的HttpContext.Current.Cache("url"))

    代码?
      

  9.   

    建议你写new函数时用参数传递cache("url")
    如果在你的页面里用cache("url")取不到值那就和你的类没关系了。
    Sub New( byval dbname as string)
        
        _Conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("../data/" + DBName + ".mdb")) '../bwm3.mdb  
        _Conn.Open()
    End Sub
      

  10.   

    流程如下:我是在程序的开始给cache或session赋值,这之前没有数据库操作;
    HttpContext.Current.Cache("url") = String.Concat(Request.UserHostAddress)’举个例子
    公用类里得到cache或session的值,使之得到具体的数据库;
    DBName = String.Concat(HttpContext.Current.Cache("url"))
    ……
    然后打开数据库,程序可以执行数据库……