Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 发布/安装后手动寻址数据库_C#_Database_Path_Installation - Fatal编程技术网

C# 发布/安装后手动寻址数据库

C# 发布/安装后手动寻址数据库,c#,database,path,installation,C#,Database,Path,Installation,我正在编写一个表单数据库程序。 为此,我需要手动读取数据,经过长期研究,我认为这是解决我的数据库问题的最佳方法: con = new System.Data.SqlServerCe.SqlCeConnection(); String connectionString = "Data Source=|DataDirectory|\\Database1.sdf"; String executable = System.Reflection.Assembly.GetExecutingAssembly(

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

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();
这在VisualEditor中工作,但在发布我的程序和程序安装后,它会发出一个错误,因为安装的文件夹中没有数据库。 (安装后,连接字符串的目标
C:\Users\Tac\AppData\Local\Apps\2.0\9E0GCT8K.WVE\KYYL0ERB.678\Program
,并且没有数据库


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

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

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

或者最好还是使用windows中的一个特殊文件夹

AppDomain.CurrentDomain.SetData("DataDirectory", Environment.SpecialFolder.ApplicationData);
您也可以在安装程序配置中指定此文件夹。
有关特殊文件夹和文件系统编辑器的详细信息,请查看此文件。安装或第一次运行应用程序时,您需要创建一个空数据库。您能告诉我如何将其配置为安装在特殊目录中吗?:)@user2009820如果将其放置在自定义目录中,可能会因为权限问题而给您带来问题。最好将其放在ApplicationData或任何其他特殊文件夹中。我修改了我的答案。