在连接字符串中使用变量作为数据库名称的一部分,因此不必为每个用户进行硬编码

时间:2019-01-19 22:13:56

标签: database vb.net database-connection connection-string oledb

我的程序在我的计算机上使用一个名为(County Hunter-K8EMS.mdb)的数据库。我想做的是使用一个用户可以在其屏幕上输入的变量,然后选择DB在其计算机上进行搜索(County Hunter-“ Variable” .mdb)。由于每个用户都有一个不同的调用,变量将到达何处。

此数据库是由县猎人使用的另一个程序创建的,我要做的就是在该数据库中搜索一个表以查看某个字段是否为NULL或使用过。我在屏幕上有一个输入文本框,因此他们可以输入呼叫,并希望使用该输入来完成对数据库的命名以进行搜索,因此不需要为每个用户都进行硬编码和编译。

我正在Microsoft Visual Studio 17中使用Visual Basic。

     Dim conn As OleDbConnection
     Dim ds As New DataSet
     Dim dt As New DataTable
     ds.Tables.Add(dt)
     Dim da As New OleDbDataAdapter
     Dim connString = "(Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Logger Data\County Hunter -  " ' & mcall.text &'""' &.mdb&'"Jet OLEDB:Database.[County Hunter- (mcall,text.mdb) Password = ########;)"

MDB是旧的Access数据库,因为安装该数据库的程序在VB6中。连接字符串显示错误,但是我对Access还是很陌生 需要如何做这项工作的一些指导。

variable input screen

任何想法或帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您每次都可以这样做,但这很麻烦。您不能将其放入数据库中,因为这就是您要查找的位置...我建议将其放入配置文件中。

Dim  config = ConfigurationManager.OpenExeConfiguration(Assembly.GetEntryAssembly().Location)

Dim appSettings = CType(config.GetSection("appSettings"), AppSettingsSection)
Dim insensitive = StringComparison.CurrentCultureIgnoreCase

If (Not appSettings.AllKeys.Any(Function(key)
        string.Compare(key, "name", insensitive) = 0)) Then
    appSettings.Settings.Add("name", "bar")

    config.Save()
End If