Использование переменных для таблицы и столбца в LINQ - PullRequest
0 голосов
/ 30 мая 2018

Итак, я пишу VB.Net, который использует LINQ для доступа к базе данных.Есть одна часть программы, в которой у меня возникли проблемы с выяснением, как получить доступ к столбцу в таблице, когда оба значения передаются как переменные.

Сейчас у меня есть настройка с использованием SqlConnection строк иSqlDataAdapters, чтобы выполнить работу, но это буквально единственный сегмент моего кода, который использует этот синтаксис, и это чертовски беспокоит меня.Я хотел бы выяснить, как изменить код на формат LINQ, чтобы кодовая база стала более сплоченной.

Это сегмент кода, который у меня сейчас есть:

Public Function GetColumnFromTable(col As String, tbl As String) As AutoCompleteStringCollection
    Dim source As New AutoCompleteStringCollection
    Dim conn As New SqlConnection("my connection string")
    Try
        conn.Open()
    Catch ex As Exception
        MessageBox.Show(ex.Message)
        Return source
    End Try
    Dim query As New SqlCommand("SELECT " + col + " FROM " + tbl + "", conn)
    Dim dataSource As New DataTable
    Dim adapter As New SqlDataAdapter(query)
    adapter.Fill(dataSource)
    For i = 0 To dataSource.Rows.Count - 1
        source.Add(dataSource.Rows(i)(field).ToString())
    Next
    conn.Close()
    Return source
End Function

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

Public FUnction GetColumnFromTable(col As String, tbl As String) As AutoCompleteStringCollection
    Dim source As New AutoCompleteStringCollection
    Dim query = From tbl Select col
    query.ToList().ForEach(Function(x) source.Add(x))
End Function

Я бы хотел что-то вроде приведенного выше кода, который действительно работает, но я не знаю, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...