我用asp.net结合C#开发的一个网站,现在想把aspx文件中的连接access数据库移植到cs文件中来实现,我在aspx文件中的连接语句:
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
strConnection+="Data Source=";
strConnection+=MapPath("aspnet.mdb");
OleDbConnection objConnection=new OleDbConnection(strConnection);
能正常访问数据库,但是把这些语句放入cs文件中就不能访问数据库了,请高手指点一下,在cs文件中如果访问数据库?
有相关的语句吗?
以上的语句应该如何改动呀?
谢谢!

解决方案 »

  1.   

    我这样做的目的是把数据库连接封装到一个cs文件里,再把它生成DLL文件,然后在页面加载时调用该文件,这样在页面运行时无需再连接数据库,加快运行速度。
      

  2.   

    strConnection+=MapPath("aspnet.mdb");
    改成
    strConnection+=Server.MapPath("aspnet.mdb");
    试试
      

  3.   

    错误信息如下...\express\show.cs(29): 名称“MapPath”在类或命名空间“express.show”中不存在我试了把MapPath改成Server.MapPath也不行呀!
      

  4.   

    我试了把MapPath改成Server.MapPath也不行呀!
    生成express.dll时错误信息如下:
    ...\express\show.cs(29): 找不到类型或命名空间名称“Server”(是否缺少 using 指令或程序集引用?)
      

  5.   

    我把连接字符串改成
    string strConnection="Provider=Microsoft.Jet.OleDb.4.0;Data Source=Server.MapPath('sq.mdb')";
    myconn=new OleDbConnection(strConnection);
    生成express.dll文件时也能通过,但是在aspx文件中调用语句:
    express.show succ=new express.show();
    Message.Text=succ.success(); //Message为label,用来显示success反馈信息出现如下错误:
    找不到文件 'D:\WINNT\system32\Server.MapPath('sq.mdb')'。
    为什么在程序中的相对路径在这里确是绝对路径了?
      

  6.   

    改string strConnection="Provider=Microsoft.Jet.OleDb.4.0;Data Source=Server.MapPath('sq.mdb')";为string strConnection="Provider=Microsoft.Jet.OleDb.4.0;Data Source="+Server.MapPath("sq.mdb");
      

  7.   

    还不行的话就用全名 System.Web.HttpContext.Current.Server.MapPath("db.mdb")
      

  8.   

    手头没有.net。大概应该是:
    string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
    strConnection+="Data Source=";
    strConnection+=AppDomain.CurrentDomain.BaseDirectory+"aspnet.mdb";
    OleDbConnection objConnection=new OleDbConnection(strConnection);其中的BaseDirectory你还可以换其他的CurrentDomain的属性。另外就是注意以下BaseDirectory是否返回最后带"\"符号的字符串,如果没有就补上。
      

  9.   

    按照 flyye_cs(一叶孤舟)说的System.Web.HttpContext.Current.Server.MapPath("db.mdb")现在已能正常访问数据库了,谢谢!晚安!