Column unknown firebird c#

494 Views Asked by At

I'm using FirebirdSql.Data.FirebirdClient;

I have SQL query:

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

For make select im Using this code:

        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();

im getting this exception:

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

EDIT: change : to @filtro and solve problem

1

There are 1 best solutions below

2
Martin On

Parameters in Firebird ADO.net provider should be preceded with the @ symbol and not a :.

Simply change your code to use @ and it should work.

SQL code snippet:

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

C# code snippet:

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