Visual Studio 2015. выполнить код VB из строки

Предположим, у меня есть этот фрагмент кода

Dim tab As String = "myTab"
Dim val As String = "field1"
Dim con As String = "...."
Dim qry As String 'should be: "Select * from " & tab & " where value = '" & val & "'"
Dim com As New OracleCommand (qry, con)...

Предположим также, что строка запроса (то есть значение qry) извлекается из базы данных. Я не могу передать qry команде oracle, потому что она не будет оценена, т. Е. Переменные не привязаны к своим значениям, а строка передается буквально команде, вызывая ошибку. Есть ли способ оценить строку и выполнить ее как оператор VB?

1 ответ

Использовать параметры так просто, как сказал @muffi.

С верхней части моей головы:

    Dim tab As String = "myTab"
    Dim val As String = "field1"

    Using cmd As New OracleCommand("SELECT * FROM :table WHERE value = :value", con)
        cmd.Parameters.Add(New OracleParameter() {Direction = ParameterDirection.Input, ParameterName = "table", OracleDbType = OracleDbType.Varchar2, Value = tab})
        cmd.Parameters.Add(New OracleParameter() {Direction = ParameterDirection.Input, ParameterName = "value", OracleDbType = OracleDbType.Varchar2, Value = val})
        Using OracleDataReader reader As cmd.ExecuteReader()
            While reader.Read()
                Console.WriteLine(reader.GetString(0))
            End While
        End Using
    End Using
Другие вопросы по тегам