Set conn = Server.CreateObject("adodb.Connection")  
connstr = "Provider=Microsoft.Jet.OLEDB.4.0; Data source=" & Server.MapPath("test.mdb")  
conn.Open connstr  
sql = "insert into userinfo select userName,userAccount,userStatus from [userinfo$] in '" & Server.MapPath("hbwlUserInfo.xls")  
 & "' 'Excel 8.0;' where userAccount is not null"  
conn.Execute (sql) 这段代码用C#该怎么写,C#中无Server.MapPath()函数吧,请各位大神帮帮忙

解决方案 »

  1.   

    原理是一样的,conn用String connectionString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=";
    connectionString += @"test.mdb";
    OleDbConnection con = new OleDbConnection(connectionString);
    con.Open();
      

  2.   

    问题补充:
    sql = "insert into userinfo select userName,userAccount,userStatus from [userinfo$] in '" & Server.MapPath("hbwlUserInfo.xls") & "' 'Excel 8.0;' where userAccount is not null"  
    该sql语句执行了往正在连接.mdb里插入同时也连接着的.xls表里的数据;也就是说,这里是打开了两个连接,用C#该如何实现同时打开两个连接。我要的就是这段代码完全相同的功能
      

  3.   

    从Server.MapPath可以看出楼主你这是web项目吧,在asp.net中也是有Server.MapPath()这个获取相对路径的函数的,如:string con="Provider=Microsoft.Jet.OleDb.4.0;Data Source=" +Server.MapPath('~')+ "\\Market.pdb;Jet OLEDB:Database Password=;";
      

  4.   

     // 获取程序的基目录。
    System.AppDomain.CurrentDomain.BaseDirectory
    // 获取模块的完整路径。
    System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
    // 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。
    System.Environment.CurrentDirectory
    // 获取应用程序的当前工作目录。
    System.IO.Directory.GetCurrentDirectory()
    // 获取和设置包括该应用程序的目录的名称。
    System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase
    // 获取启动了应用程序的可执行文件的路径。
    System.Windows.Forms.Application.StartupPath
     // 获取启动了应用程序的可执行文件的路径及文件名
    System.Windows.Forms.Application.ExecutablePath