Использование переменной в строке подключения для части имени базы данных, чтобы не было жестко задано для каждого пользователя - PullRequest
0 голосов
/ 20 января 2019

Моя программа использует базу данных с именем (County Hunter - K8EMS.mdb) на моем компьютере.Я хочу использовать переменную, которую пользователь может ввести на своем экране, и выбрать базу данных для поиска на своем компьютере (County Hunter - «Variable» .mdb).Поскольку у каждого пользователя свой вызов, куда пойдет переменная.

Эта база данных создана другой программой, используемой охотником за графством, все, что я хочу сделать, - это поискать в таблице в этой базе данных, чтобы увидеть, является ли поле пустым или используется.У меня есть текстовое поле ввода, чтобы они могли вводить свой вызов, и я хотел бы использовать этот ввод, чтобы завершить именование базы данных для поиска, поэтому для каждого пользователя не нужно было бы выполнять сложное кодирование и компиляцию.

Я использую Visual Basic в Microsoft Visual Studio 17.

     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 голосов
/ 22 января 2019

Вы могли бы делать это каждый раз, но это было бы хлопотно. Вы не можете поместить его в БД, потому что это то, что вы находите ... Я бы посоветовал поместить его в файл конфигурации.

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
...