0

我在设置 SDF 数据库的路径时遇到了一些问题。

我的原始连接

<add name="Model1Container" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;data source=|DataDirectory|\Database1.sdf&quot;" providerName="System.Data.EntityClient" /></connectionStrings>

然后我尝试使用 ConfigurationManager 获取数据库连接字符串,但它产生错误(元数据不支持)

之后,我没有使用连接字符串,而是尝试了其他几种方法,例如:

string StartupPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);
        string datalogicFilePath = Path.Combine(StartupPath, "Database1.sdf");
        string connectionString = string.Format("DataSource={0}", datalogicFilePath);

这个会抛出URI格式异常

@"Data Source = |DataDirectory|\Database1.sdf"

这个能够为 ExecuteNonQuery 返回 1,但我在它自己的 db 上看不到任何更改。

然后我意识到它可能是复制到输出目录属性。我试过“不要复制”,它在找不到 bin\database1.sdf 的地方产生了错误消息。我已将其设置回“如果较新则复制”。

但是当我使用数据库的完整路径 C:.....................\Project\database1.sdf 时,它能够更新数据库。有没有办法做到这一点,而不是提供一个完整的路径?

4

2 回答 2

0

尝试使用您的本地路径 Data Source=C:\Users\ABC\Documents\Visual Studio 2010\Projects\ABC\ABC\Database1.sdf;Password=qwer!234;Persist Security Info=True"

于 2014-11-16T02:11:21.890 回答
0

我遇到了同样的问题,终于解决了,实际上它保存了数据,但没有保存在它显示在服务器资源管理器中的 .sdf 中(通常在应用程序的根文件夹中),但是当你发布应用程序时也在调试文件夹中的 .sdf 中它与正常插入数据的根 .sdf 一起发布。希望我没有让您感到困惑,并且对您有所帮助。-Masology

于 2013-10-01T04:41:48.467 回答