我正在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-qenclosures)(Q :)。
因此,每当我在同事计算机上打开程序时,都会出现一个错误,指出该数据库Provider=Microsoft.Jet.OLEDB.4.0;Data Source="Z:\Jimmy's Files\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文章:在Visual Basic 2005中使用My.Settings
简而言之,您将拥有共享的代码示例,将值保存到My.Settings.DataPath
(或您决定调用此设置的任何内容)中。然后,当您连接到数据库并需要连接字符串时,将使其从中读取My.Settings.DataPath
。
当然,app.config
默认情况下,这会将您的数据库路径存储在纯文本文件中,因此,如果您的应用程序或数据库存在安全隐患,则需要注意这一点并采取适当的步骤。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句