Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/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
Vb.net 如何使用应用程序复制access数据库文件?_Vb.net_Visual Studio_Ms Access_Clickonce - Fatal编程技术网

Vb.net 如何使用应用程序复制access数据库文件?

Vb.net 如何使用应用程序复制access数据库文件?,vb.net,visual-studio,ms-access,clickonce,Vb.net,Visual Studio,Ms Access,Clickonce,在我的Visual Basic应用程序中,我使用了一个access数据库文件。它显示在解决方案资源管理器窗口中。在我安装之前,一切都很好。由于某些原因,数据库文件与安装不匹配。我想我需要在运行时编辑连接字符串,但我不确定。我以前没有做过类似的事情,我也找不到关于它的信息 如果有人能给我发一个教程,或者在安装应用程序后简要解释如何使用access数据库 当我的程序运行时,它会在 User\App Data\Roaming\CreatedFolder\Resources\DatabaseFile.a

在我的Visual Basic应用程序中,我使用了一个access数据库文件。它显示在解决方案资源管理器窗口中。在我安装之前,一切都很好。由于某些原因,数据库文件与安装不匹配。我想我需要在运行时编辑连接字符串,但我不确定。我以前没有做过类似的事情,我也找不到关于它的信息

如果有人能给我发一个教程,或者在安装应用程序后简要解释如何使用access数据库

当我的程序运行时,它会在

User\App Data\Roaming\CreatedFolder\Resources\DatabaseFile.accdb
那么,在不知道应用程序数据的完整路径的情况下,如何设置此路径?

您可以使用

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

Environment.GetEnvironmentVariable(“APPDATA”)
它们都应该返回类似于

C:\Users\Gord\AppData\Roaming
因此,您可以按如下方式构建连接字符串:

Dim dbPath=_
GetFolderPath(Environment.SpecialFolder.ApplicationData)和_
“\CreatedFolder\Resources\DatabaseFile.accdb”
Dim connStr As String=“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=”&dbPath

我这样做的方式是:

  • 选择添加新数据源
  • 从出现的列表中选择数据库,然后单击下一步
  • 单击下一步
  • 在向导的
    选择数据连接
    页面中,单击
    新建连接
  • 从列表框中选择Microsoft Access数据库文件,然后单击下一步
  • 选择不在目录中的数据库文件副本并输入任何登录信息
  • 单击“确定”
  • 现在,Visual Studio将询问您:

    您选择的连接使用的本地数据文件不在 当前项目。是否要将文件复制到项目中,然后重试 和修改连接

    如果将数据文件复制到项目中,它将被复制到项目的 每次运行应用程序时输出目录。按F1键进行编辑 有关控制此行为的信息

  • 单击“是”,VisualStudio将把数据库添加到项目中,并创建一个指向复制的数据库的连接字符串

  • 现在,您可能希望将连接字符串保存在App.Config中,这样就不必在每次使用数据库时都重新生成它。这很可能会保存使用
    |DataDirectory |
    的连接字符串。根据需要修改此页面的内容
  • 继续完成向导的其余部分,并根据需要配置数据库
  • 向导应配置连接字符串和生成信息,以便应用程序无论在何处运行都能正常工作

    编辑-保存在App.config中的我的连接字符串如下所示

        <connectionStrings>
            <add name="SOAccessDatabase.My.MySettings.Students_2000formatConnectionString"
                connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Students_2000format.mdb"
                providerName="System.Data.OleDb" />
        </connectionStrings>
    
    
    

    我还将数据库文件的构建操作设置为“始终复制”。

    当我将其保留为| DataDirectory |时,可能会遇到重复的问题,它会在AppData的本地文件夹中创建一个文件夹,并且由于某些原因不会将数据库复制到该文件夹中。我总是会出错。这就是我安装和运行时发生的情况….'C:\Users\Neil\AppData\Local\Apps\2.0\Data\KBBE6L8Y.4H8\2X1QXHV5.A2H\gulb..tion_20d7bfc1bd30efa8_0001.0000_dbc5cc6b3df538bc\Data\Resources\TML.accdb'不是有效路径。请确保路径名拼写正确,并且您已连接到文件所在的服务器。@xRuhRohx,查看编辑,看看是否有帮助。此应用程序访问数据的方式与现在配置的一样。希望这有帮助。我们的连接字符串非常相似,我想我发现了为什么它对我不起作用。现在我正在安装一个单击一次的应用程序。这也没有改变任何事情。我认为我使用数据库做了一些好事,但这太令人头痛了。当我尝试将其添加到连接字符串时,我会出错。我使用向导设置了数据库连接,那么在运行时如何更改连接字符串?@xRuhRohx可能
    my.Settings.Item(“DatabaseFileConnectionString”)=connStr
    可能会这样做。检查“项目属性”页面中的“设置”选项卡以确认设置的名称。好的,我将试一试。好的,成功了,非常感谢。在运行时编辑连接字符串是否安全?