如何使用我的应用程序复制访问数据库文件?

时间:2014-09-23 12:51:34

标签: vb.net visual-studio ms-access clickonce

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

如果有人可以将我发送到教程,或者在安装应用程序后简要说明如何使用访问数据库。

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

中创建一个目录
User\App Data\Roaming\CreatedFolder\Resources\DatabaseFile.accdb

那么如何在不知道App Data的完整路径的情况下设置此路径?

2 个答案:

答案 0 :(得分:3)

您可以使用

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

Environment.GetEnvironmentVariable("APPDATA")

他们都应该返回类似于

的内容
C:\Users\Gord\AppData\Roaming

所以你可以像这样建立你的连接字符串:

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

答案 1 :(得分:2)

我这样做的方式是:

  1. 从Visual Studio
  2. 的“数据源”窗口中选择Add New Data Source . . .
  3. 从显示的列表中选择Database,然后点击下一步
  4. 点击下一步
  5. 在向导的Choose your data connection页面中,点击New connection
  6. 从列表框中选择Microsoft Access Database File,然后点击下一步
  7. 选择不在您的目录中的数据库文件的副本,并输入任何登录信息
  8. 点击确定
  9. 现在Visual Studio会问你:

    您选择的连接使用不在的本地数据文件  当前的项目。您要将文件复制到项目中吗?  并修改连接?

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

  10. 单击“是”,Visual Studio将数据库添加到项目中,并创建一个指向复制数据库的连接字符串。

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

      编辑 - 我在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>
      

      我还将数据库文件的Build Action设置为“始终复制”。