WinCE:无法将数据插入sdf数据库

时间:2013-03-19 17:23:55

标签: c# .net winforms

我在设置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的任何变化。

然后我意识到它可能是Copy to Output目录属性。我试过“不要复制”,它产生了错误信息,其中找不到bin \ database1.sdf。我已将其设置为“如果更新则复制”。

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

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题并最终解决了 实际上它保存数据但不保存在服务器资源管理器(通常位于应用程序的根文件夹中)中的.sdf中,而是保存在调试文件夹中的.sdf中 当你发布它发布的应用程序时,也会发布一个正常插入数据的根.sdf。 希望我没有迷惑你,它帮助了你。 -Masology

答案 1 :(得分:0)

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