WPF中无法向本地数据库插入数据在一个项目中,我有一个本地数据库,(我使用datagrid查看数据),但是问题是当当我使用插入查询插入到数据库中时,插入不是持久的,即当我重新运行应用程序时,数据库没有更改,更改也没有反映在数据库视图中(在VisualStudio中查看表数据)。插入查询是:stringdbCon=newSystem.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName+"\MyDatabase.sdf";SqlCeConnectiondbconnection=newSqlCeConnection("datasource="+dbCon);dbconnection.Open();StringInsert="insertintoMainTable(LineID,Date,Connection_Type)Values('5','5/8/2012','commercial')";SqlCeCommandcmd=newSqlCeCommand(Insert,dbconnection);////执行命令cmd.ExecuteNonQuery();dbconnection.Close();现在,当此代码运行时,数据网格会更新,但更改不是永久性的。我做错了什么?我正在使用VisualStudio2010Ultimate和Windows7您的应用程序在哪个文件夹中运行?如果它在程序文件树中,您可能没有对sdf文件的写入权限(尤其是在Windows7上,除非您关闭UAC或在执行前提升您的应用程序)。即使这不是您的短期问题,我也建议您为sdf文件找到一个不同的位置,例如AppData位置之一。期望能够写入您的安装位置并不能保证,这取决于您的应用程序的部署方式和位置。Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)+"\MyDatabase.sdf"是应用程序文件夹的路径。根据安装选项,您的文件可能不会安装在那里。使用连接字符串“DataSource=|DataDirectory|\MyDatabase.sdf;...”,如此处所述。即使您的数据实际存储在那里,根据用户权限,用户也可能无法写入该目录。此外,当用户卸载或更新您的应用程序时,他的数据将被删除。人们不喜欢这样。您应该将数据复制到用户可写的文件夹;较早的链接也显示了如何执行此操作。如果您的VisualStudio项目有一个数据库作为项目的一部分,您可能会将“复制到输出目录”属性设置为“复制”。这意味着每次在调试器中运行时,都会从源项目中复制一个全新的数据库,覆盖之前的所有数据库。任何更改都将在此临时输出文件夹中,而不是原始源数据中。再次调试应用程序时,临时副本将被删除。此答案中的进一步解释。以上就是C#学习教程:UnabletoinsertdataintothelocaldatabaseinWPF的全部内容分享。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
