0

我正在编写一个表单数据库程序。为此,我需要手动读出数据,我认为 - 经过长时间的研究 - 这是解决我的数据库的最佳方法:

con = new System.Data.SqlServerCe.SqlCeConnection();
String connectionString = "Data Source=|DataDirectory|\\Database1.sdf";
String executable = System.Reflection.Assembly.GetExecutingAssembly().Location;
String path = (System.IO.Path.GetDirectoryName(executable));
AppDomain.CurrentDomain.SetData("DataDirectory", path);
con.ConnectionString = connectionString;//"Data Source=C:\\Users\\Name\\Documents\\Databases\\Visual 2012\\Database1.sdf";
con.Open();

这在可视化编辑器中有效,但是在发布我的程序和程序安装后它会出错,因为安装的文件夹中没有数据库。(安装连接字符串目标后C:\Users\Tac\AppData\Local\Apps\2.0\9E0GCT8K.WVE\KYYL0ERB.678\Program,没有数据库。

有人可以帮我一个好主意,安装后如何使寻址工作?

4

1 回答 1

0

如果您不使用 SetData 设置 DataDirectory,它将检查的位置之一是可执行文件的目录。

您可以在安装程序中包含数据库(我猜是一个空的),并将其配置为与可执行文件安装在同一目录中。

或者最好还是使用 Windows 中的特殊文件夹之一。

AppDomain.CurrentDomain.SetData("DataDirectory", Environment.SpecialFolder.ApplicationData);

您也可以在安装程序配置中指定此文件夹。查看此链接以获取有关特殊文件夹和文件系统编辑器的更多信息

于 2013-01-25T05:30:22.523 回答