连接字符串ms访问数据库2010在c#中为dns减去

时间:2013-04-02 12:11:28

标签: c# ms-access-2010

...友  从那以后,

 OleDbConnection vcon = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;
 Data Source=C:\Users\Tushar\Documents\db.accdb");

此字符串在c#中用于ms访问数据库连接..请查看已知的数据库位置并且它可以工作..

但是,我希望在任何位置的数据库运行应用程序...(即)它应该从任何位置自动获取数据库位置(当用户在任何位置保存项目时)

有些伙伴可以帮帮我..

先谢谢..

4 个答案:

答案 0 :(得分:0)

我建议在C#中创建逻辑,以确定数据库所在的位置。一旦你知道,它就像字符串连接一样简单:

var dbLocation = GetDbLocation();
OleDbConnection vcon = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;
                              Data Source=" + dbLocation ");

GetDbLocation()可以从配置文件中提取信息,或者以其他方式确定信息(您没有给我们足够的信息来确定数据库的位置)。

答案 1 :(得分:0)

将数据库复制到App_Data

并使用此代码:

string path = Server.MapPath("~/App_Data") + "\\" + "db.accdb";

OleDbConnection vcon = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;
                               Data Source="+path +"");

希望这个帮助。

答案 2 :(得分:0)

尝试如下,它会帮助你...

string path = Environment.CurrentDirectory;
            path = path + "\\db.accdb";
            OleDbConnection vcon = new 
OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + path);

将应用和数据库的EXE放在同一位置,然后使用上面的代码......

如果您将数据库放在数据库数据库中,请尝试如下...

string path = Environment.CurrentDirectory;
            path = path + "\\DataBase\\db.accdb";
            OleDbConnection vcon = new 
OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + path);

答案 3 :(得分:0)

您必须通过connectionstring提供db位置。 OleDbConnection没有其他方法可以知道数据库文件的位置。

现在,您可以做的是在运行时以这两种方式指定连接字符串。

  1. 可以随意收集连接线,它们都指向预定的位置,动态指定/选择其中一个。即。

        OleDbConnection cn = new OleDbConnection();
        cn.ConnectionString = variable;
    
  2. 单个连接字符串的简单字符串连接。
  3. 无论哪种方式,您都必须预先确定位置。没有神奇的代码,可以在整个系统中搜索自动的.accdb文件并将其插入。即使你编写了这样的代码,也可能是破解的代码或特别优秀的代码。

    因此,更好地管理您的connectionStrings(所有可能的预先确定的位置,您将db文件的位置(副本)放在web.config中。

    或者,您可以创建一个db表来存储所有可能的连接字符串,您可以通过简单的用户界面向其添加条目和删除条目。