OleDbConnectionStringBuilder ac = new OleDbConnectionStringBuilder();
            ac.DataSource = @"E:\code\t同學錄\My_class.mdb";
            ac.Provider = "Microsoft.Jet.OLEDB.4.0";
//怎样使用使用相对路径使程序再别的机子上不用调试也能运行?
//还有怎样修改代码使程序简洁,而不是每次连接数据库都写同样的代码?

解决方案 »

  1.   

    Application.StartupPath + "\\My_class.mdb"
      

  2.   

    在App.Config中这样写:
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <appSettings>
      </appSettings>
      <connectionStrings>
        <add name="ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\My_class.mdb;Persist Security Info=True" providerName="System.Data.OleDb" />
      </connectionStrings>
    </configuration>
    然后:
    string ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
      

  3.   


    <add name="accessConnStr" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source= |DataDirectory|a.mdb" providerName="System.Data.OleDb"/>  <appSettings>  
    <add key="ConnString" value="provider=microsoft.jet.oledb.4.0;data source="/>  
    <add key="dbPath" value="~/App_Data/a.mdb"/>  
    </appSettings>
      

  4.   

    所谓“相对”,你就需要先搞清楚默认当前目录是哪里?!对于asp.net应用程序,当前目录就是asp.net网站应用程序根目录。注意不一定跟你的网站的根目录相同,因为一个网站下面可以有很多虚拟目录作为各个单独的asp.net应用程序根目录。因此,假设是app_data目录下的abc.mdb文件,那么所谓相对路径就是:“app_data\abc.mdb”,而应用程序目录上一层目录之下的一个databases目录里的abc.mdb文件(许多空间允许你将数据文件、日志文件等放到网站之外的某个有权限的指定目录下),就是:“..\databases\abc.mdb”。
      

  5.   

    要注意地,对于winform、console程序,它的“默认当前工作目录”在哪里?在启动.exe时所指定的目录,例如就是bin目录。这就是asp.net与winform和console的差别。
      

  6.   


    string connectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=~/database/a.mdb";
      

  7.   

    Server.MapPath("~/My_class.mdb");
      

  8.   

    private void fin_but_Click(object sender, EventArgs e)  //查詢按鈕
            {
              
      OleDbConnectionStringBuilder ac = new OleDbConnectionStringBuilder();
                ac.DataSource = Application.StartupPath + "\\My_class.mdb"; //这样改不行
                ac.Provider = "Microsoft.Jet.OLEDB.4.0";            
                if (fin_nam.Text != "") //按姓名查找
                {
                    using (OleDbConnection oc = new OleDbConnection(ac.ConnectionString))
                    {
                        DataSet ds = new DataSet();                    try
                        {
                            oc.Open();
                            string str = "select nam,sex,qq,tel,eml,add,ima from cla_tab where nam='" + this.fin_nam.Text.Trim() + "'";    //匹配姓名
                            OleDbDataAdapter adt = new OleDbDataAdapter(str, oc);
                            adt.Fill(ds, "cla_tab");
                  ……      }
                        catch (Exception)
                        {                        MessageBox.Show("查詢失敗!");
                        }
                        finally
                        { oc.Close(); }
                    }
                }
               
                else
                    MessageBox.Show("請輸入查詢條件!");
            }
      

  9.   

    Application.StartupPath + "\\My_class.mdb"
      

  10.   

    Application.StartupPath + "\\My_class.mdb"
      

  11.   


    //搞定了,把access数据库放到debug目录下就行了,谢谢搂下各位大侠!
    ac.DataSource =@ Application.StartupPath + "\\My_class.mdb"; 
      

  12.   


    OleDbConnectionStringBuilder ac = new OleDbConnectionStringBuilder();
                                ac.DataSource = @Application.StartupPath + "\\My_class.mdb";
                                ac.Provider = "Microsoft.Jet.OLEDB.4.0";
                                using (OleDbConnection oc=new OleDbConnection(ac.ConnectionString))
                                {
                                    DataSet ds = new DataSet();
                                    try
                                    {
                                        oc.Open();
                                        string str = "delete  from cla_tab where nam='"+this.show_nam.Text.Trim()+"'"; //这一句可以直接执行
                                                                            OleDbDataAdapter adt = new OleDbDataAdapter(str, oc);
                                        adt.Fill(ds, "cla_tab");
                                                                            File.Copy(filename, Application.StartupPath + "\\ima_dat\\" + name, true);                                       //oc1.Open();
                                        string str1 = "Insert Into cla_tab values('" + show_nam.Text.Trim() +
                                                                                "','" + show_sex.Text.Trim() +
                                                                                "','" + sho_q.Text.Trim() +
                                                                                "','" + sho_tel.Text.Trim() +
                                                                                "','" + sho_ema.Text.Trim() +
                                                                                "','" + sho_add.Text.Trim() +
                                                                                "','" + name.Trim() + "')"; //为什么这一句就跳过了?
                                        OleDbCommand os = new OleDbCommand(str1, oc);
                                        os.ExecuteNonQuery();
      

  13.   

    把数据库文件放在可执行文件目录下。Application.StartupPath + "\\My_class.mdb"
      

  14.   

    string constr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + AppDomain.CurrentDomain.BaseDirectory + "App_Data\\dd_liuyan.mdb"; 或
            string constr = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];
            OleDbConnection con = new OleDbConnection(constr);
      

  15.   

    string constr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + AppDomain.CurrentDomain.BaseDirectory + "App_Data\\dd_liuyan.mdb"; 或
            string constr = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];
            OleDbConnection con = new OleDbConnection(constr);