Колонна неизвестного firebird c # - PullRequest
1 голос
/ 15 апреля 2019

Я использую FirebirdSql.Data.FirebirdClient;

У меня SQL-запрос:

"SELECT * FROM TB_CLIENTES C JOIN TB_CLIENTES_ENDERECOS E ON (E.CLIENTE_COD = C.CLIENTE_COD AND E.ENDERECO_TIPO_COD =1) WHERE C.CLIENTE_COD LIKE :filtro ORDER BY C.RAZAO_SOCIAL"

Для выбора выберите im Используя этот код:

        string conexao = String.Format(integracao.Local, integracao.Usuario, integracao.Senha);
        DbConnection connection = null;
        DbCommand command = null;
        connection = new FbConnection(conexao);
        connection.Open();
        command = new FbCommand(@integracao.ConsultaSQL, (FbConnection)connection);
        if (integracao.TipoFiltro.Equals(TipoFiltroEnum.TEXTO)) { command.Parameters.Add(new FbParameter(":filtro", campoFiltro + "%")); }
        else { command.Parameters.Add(new FbParameter(":filtro", campoFiltro)); }
        DbDataReader dr = command.ExecuteReader();

я получаю это исключение:

FirebirdSql.Data.FirebirdClient.FbException: 'Dynamic SQL Error SQL error code = -206 Column unknown FILTRO At line 1, column 146' IscException: Dynamic SQL Error SQL error code = -206 Column unknown FILTRO At line 1, column 146

РЕДАКТИРОВАТЬ: изменить: на @filtro и решить проблему

1 Ответ

1 голос
/ 15 апреля 2019

Параметры в провайдере Firebird ADO.net должны начинаться с символа @, а не :.

. Просто измените свой код на @, и он должен работать.

Фрагмент кода SQL:

... WHERE C.CLIENTE_COD LIKE @filtro ORDER BY ...

Фрагмент кода C #:

... command.Parameters.Add(new FbParameter("@filtro", ...
...