Database 如果当前数据库连接失败,提示用户浏览数据库连接

Database 如果当前数据库连接失败,提示用户浏览数据库连接,database,vb.net,database-connection,localserver,Database,Vb.net,Database Connection,Localserver,我正在vb.net中构建一个数据输入程序,5个人将使用该程序共享,但我在设置正确的数据库连接时遇到问题。它会做一些基本的事情,比如:调出库存单元、保存作业、加载作业操作 我使用的数据库是Access数据库(.mdb)。此数据库将位于本地服务器驱动器中(我的位于Z驱动器中),连接字符串如下所示 Provider=Microsoft.Jet.OLEDB.4.0;Data Source="Z:\Jimmy's Files\Quality Enclosures.mdb" 这在我的电脑上运行良好,但问题

我正在vb.net中构建一个数据输入程序,5个人将使用该程序共享,但我在设置正确的数据库连接时遇到问题。它会做一些基本的事情,比如:调出库存单元、保存作业、加载作业操作

我使用的数据库是Access数据库(.mdb)。此数据库将位于本地服务器驱动器中(我的位于Z驱动器中),连接字符串如下所示

Provider=Microsoft.Jet.OLEDB.4.0;Data Source="Z:\Jimmy's Files\Quality Enclosures.mdb"
这在我的电脑上运行良好,但问题是它在我同事的电脑上不工作

d(\dc qenclosures)(Z:)是本地服务器驱动器的位置,但在我同事的计算机上,它设置为 d(\dc Qencloures)(Q:)

因此,每当我在同事的计算机上打开程序时,它都会给我一个错误,即数据库
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=“Z:\Jimmy的文件\ Quality Enclosures.mdb”
不存在(这很有意义,因为它不在他的计算机上的Z:下)

我知道如何使用
OpenFileDialog
浏览mbd文件。。但是如何将其设置为新的数据库连接? 我想创建一个属性菜单来设置数据库位置

这是迄今为止我用来浏览数据库文件的代码

Private Sub RadButton6_Click(sender As Object, e As EventArgs) Handles RadButton6.Click

    Dim myStream As Stream = Nothing
    Dim openFileDialog1 As New OpenFileDialog()

    openFileDialog1.InitialDirectory = "c:\"
    openFileDialog1.Filter = "mdb files (*.mdb)|*.mdb|All files (*.*)|*.*"
    openFileDialog1.FilterIndex = 1
    openFileDialog1.RestoreDirectory = True

    If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
        Try
            myStream = openFileDialog1.OpenFile()
            If (myStream IsNot Nothing) Then
                myConString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & openFileDialog1.FileName
                con.ConnectionString = myConString
                con.Open()
            End If
        Catch Ex As Exception
            MessageBox.Show("Cannot read file from disk. Original error: " & Ex.Message)
        Finally
            ' Check this again, since we need to make sure we didn't throw an exception on open. 

            If (myStream IsNot Nothing) Then
                myStream.Close()
            End If
        End Try
    End If
End Sub

我支持@OneFineDay的建议,首先尝试UNC路径,但要回答您浏览和保存数据库路径的主要问题,您可能需要查看在
My.Settings
中存储连接字符串的元素,以便将路径设置为用户级设置。这里有一篇MSDN文章,其中有一些例子:

简而言之,您应该让共享的代码示例将值保存到
My.Settings.DataPath
(或您决定调用该设置的任何内容)。然后,当您连接到数据库并需要连接字符串时,可以从
My.Settings.DataPath
读取该字符串


当然,默认情况下,这会将您到数据库的路径存储在纯文本
app.config
文件中,因此如果您的应用程序或数据库存在任何安全问题,您需要意识到这一点并采取适当的步骤。

为什么不为所有用户使用
ODBC
数据源?或者,如果通过网络(同一域),将其放入共享文件夹并使用UNC路径。谢谢!我对Vb.net很陌生,所以我不知道我能做到。谢谢你给了我正确的方向!谢谢,A.富兰克林,正是我所需要的。我需要知道如何存储为设置以及如何设置UNC路径。谢谢你的帮助!