回 帖 发 新 帖 刷新版面

主题:ASP.NET中的自定义类

在ASP.NET中,在自定义的类中,为什么不能使用Server对象及其方法?
谢谢!!!

回复列表 (共9个回复)

沙发

由于类中没有继承Page类,所以无法使用Server.MapPath()功能 因此要实现这个功能,首先要引用System.Web名字空间,using System.web;
然后使用下面的方法就可以得到路径~   
    
  String   strPath   =   System.Web.HttpContext.Current.Server.MapPath();

板凳

导入命名控件之后还是不行!这是怎么回事???
急!!!

3 楼

最简单的方法:
继承Page类

4 楼

不会把 你把代码贴出来~

5 楼

[color=0000FF]using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
/// <summary>
/// DB 的摘要说明
/// </summary>
/// 
public class DB
{
    public DB()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }

    public static OleDbConnection creatOleDB()
    { 
       OleDbConnection con=new OleDbConnection ("Provider=Microsoft.Jet.OLeDb.4.0; Data Source="+ Server.MapPath("/DB/db1.mdb"));
        return con;
    }

}[/color]
[color=FF0000]顺便请帮我看看连接字符串是否正确,谢谢![/color]

6 楼

[em8]

7 楼

可以像 jzyray说的那样,直接继承page类:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
/// <summary>
/// DB 的摘要说明
/// </summary>
/// 
public class DB:System.Web.UI.Page //这里。。。。。。。。。
{
    public DB()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }

    public static OleDbConnection creatOleDB()
    { 
       OleDbConnection con=new OleDbConnection ("Provider=Microsoft.Jet.OLeDb.4.0; Data Source="+ Server.MapPath("/DB/db1.mdb"));
        return con;
    }

}

或者:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
/// <summary>
/// DB 的摘要说明
/// </summary>
/// 
public class DB
{
    public DB()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }

    public static OleDbConnection creatOleDB()
    { 
       OleDbConnection con=new OleDbConnection ("Provider=Microsoft.Jet.OLeDb.4.0; Data Source="+ System.Web.HttpContext.Current.Server.MapPath("/DB/db1.mdb"));
        return con;
    }

}

8 楼


谢谢,System.Web.HttpContext.Current.Server.MapPath()这样就不报错了!!!

但是现在在

try
 {

 }

[color=FF0000]catch (exception e)[/color]

 {


 }

的红色部分报错如下:

[color=0000FF]“/OleDbCon”应用程序中的服务器错误。
--------------------------------------------------------------------------------

编译错误 
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 

编译器错误信息: CS0246: 找不到类型或命名空间名称“exception”(是否缺少 using 指令或程序集引用?)

源错误:

 

行 54:             return true;
行 55:         }
行 56:         catch (exception e)
行 57:         {
行 58:             return false;[/color] 



请问需要导入什么命名空间?谢谢!!!

9 楼

catch (exception e) //应该是 catch (Exception e)
 

我来回复

您尚未登录,请登录后再回复。点此登录或注册