C# OleDb数据源-为什么它会出现在这个随机位置?

C# OleDb数据源-为什么它会出现在这个随机位置?,c#,asp.net,oledb,C#,Asp.net,Oledb,我正在用OleDb连接access数据库,数据源位于我的项目文件中。由于该项目将被压缩和移动,我希望它被发现,无论什么 connetionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=University.accdb;"; 其他任何时候,当我使用数据源时,我都可以这样放置它的位置,但是,当我在这里这样做时,它会尝试查找“C:\Program Files x86\Common Files\Microsoft Shared\DevS

我正在用OleDb连接access数据库,数据源位于我的项目文件中。由于该项目将被压缩和移动,我希望它被发现,无论什么

connetionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=University.accdb;";
其他任何时候,当我使用数据源时,我都可以这样放置它的位置,但是,当我在这里这样做时,它会尝试查找“C:\Program Files x86\Common Files\Microsoft Shared\DevServer\10.0\University.accdb”


有什么方法可以让它自动查看项目文件吗?

尝试将数据库文件放入解决方案中的App\u数据目录中。然后将其用于您的连接字符串

connetionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\University.accdb;";
|DataDirectory |将在部署应用程序的位置找到应用程序数据文件夹

编辑:根据SO post,您还需要在Global.asax的应用程序启动方法中使用以下行

AppDomain.CurrentDomain.SetData("DataDirectory", Server.MapPath("~/App_Data/"));

现在在\处出现一个无法识别的转义序列错误。我更正了它。。。这是C字符串的标准。。您需要@符号来告诉它不要使用转义序列,或者用\\@smritz替换单个\来转义。我上面的编辑解决了这个问题吗?我用连接字符串编辑了行。