...友 从那以后,
OleDbConnection vcon = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=C:\Users\Tushar\Documents\db.accdb");
此字符串在c#中用于ms访问数据库连接..请查看已知的数据库位置并且它可以工作..
但是,我希望在任何位置的数据库运行应用程序...(即)它应该从任何位置自动获取数据库位置(当用户在任何位置保存项目时)
有些伙伴可以帮帮我..
先谢谢..
答案 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没有其他方法可以知道数据库文件的位置。
现在,您可以做的是在运行时以这两种方式指定连接字符串。
可以随意收集连接线,它们都指向预定的位置,动态指定/选择其中一个。即。
OleDbConnection cn = new OleDbConnection();
cn.ConnectionString = variable;
无论哪种方式,您都必须预先确定位置。没有神奇的代码,可以在整个系统中搜索自动的.accdb
文件并将其插入。即使你编写了这样的代码,也可能是破解的代码或特别优秀的代码。
因此,更好地管理您的connectionStrings(所有可能的预先确定的位置,您将db文件的位置(副本)放在web.config中。
或者,您可以创建一个db表来存储所有可能的连接字符串,您可以通过简单的用户界面向其添加条目和删除条目。