3

朋友们……因为,

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

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

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

有小伙伴可以帮帮我吗。。

提前致谢..

4

4 回答 4

1

I suggest creating the logic in C# to determine where the DB is. Once you know, it's as simple as string concatenation:

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

GetDbLocation() could pull the information from a config file, or determine it in some other way (you haven't given us enough information to determine where the DB is located).

于 2013-04-02T12:17:17.450 回答
0

将您的数据库复制到 App_Data

并使用此代码:

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

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

希望这有帮助。

于 2013-04-02T12:19:31.190 回答
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);
于 2013-04-02T12:20:51.933 回答
0

您必须通过连接字符串提供数据库位置。OleDbConnection 没有其他方法可以知道数据库文件的位置。

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

  1. 有一系列连接字符串供您使用,所有这些都指向预定位置,动态指定/选择其中一个。IE

        OleDbConnection cn = new OleDbConnection();
        cn.ConnectionString = variable;
    
  2. 单个连接字符串的简单字符串连接。

无论哪种方式,您都必须预先确定位置。没有神奇的代码可以.accdb自动搜索整个系统的文件并将其插入。即使您编写了这样的代码,那也将是一个损坏的代码或非常具体的代码。

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

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

于 2013-04-02T12:23:05.880 回答