none
Converter DbParameter em DbParameterCollection. RRS feed

  • Pergunta

  • Bom dia Pessoal!

    Estou com dificuldades em fazer o seguinte : tenho um código que inicializa uma DbProviderFactory e através dela instancio 7 parâmetros  utilizando o DbParameter. 

    Após criei um DbParameter[] parâmetros e adicionei todos os 7 parâmetros utilizados. Até ai sem problemas!

    Tenho que passar estes parâmetros todos a uma função que espera uma DbParameterCollection e aí surge o meu problema... já pesquisei aqui no forum e em vários sites mas não estou conseguindo fazer esta conversão. 

    A mensagem de erro é a seguinte :

    Cannot implicitly convert type 'System.Data.Common.DbParameter' to 'System.Data.Common.DbParameterCollection'

     Poderiam me ajudar ?? 

    Obrigada!
    segunda-feira, 8 de abril de 2013 13:47

Todas as Respostas

  • não é a melhor resposta mais deve funcionar para o que voce precisa:

    System.Data.Common.DbParameter[] array = new System.Data.Common.DbParameter[2];
                    System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();

                    for (int i = 0; i < array.Count(); i++)
                    {
                        cmd.Parameters.Add(array[i]);

                    }
                    MetodoQueVoceQuer((System.Data.Common.DbParameterCollection)cmd.Parameters);


    http://renefc3.wordpress.com/ renefc3@gmail.com @renefc3

    segunda-feira, 8 de abril de 2013 15:46
  • Obrigada Rene !

    A sugestão que me passou realmente funcionou mas agora dentro da chamada do meu outro método em que passei os parametros ocorre o erro "The SqlParameter is already contained by another SqlParameterCollection."

    Faço o seguinte no código : 

    DbCommand com = factory.CreateCommand();

    com.Connection = cn;
    com.Parameters.Clear();

                        

    com.CommandType = CommandType.StoredProcedure;

    com.CommandText = sql;

    //adiciona os parametros ao DbCommand
    for (int i = 0; i < ColParam.Count; i++)
    {
           com.Parameters.Add( (System.Data.Common.DbParameter)ColParam[i]);
    }


    segunda-feira, 8 de abril de 2013 18:10
  • Olá Pessoal, 

    Alguém sabe me responder sobre o questionamento acima ? 

    Ainda não consegui resolver... o problema acontece apenas quando passo o DbParameterCollection a outro método... 

    Obrigada!

    quinta-feira, 11 de abril de 2013 14:42
  • Olá Michele, poderia postar todo o seu código, os dois métodos, acho que ficaria mais fácil te ajudar.

    Você está inserindo os mesmos parâmetros que já foram inseridos no outro collection? se sim, tente instancia-los novamente, para depois inseri-los em um novo collection. 


    Ao infinito e além!

    sexta-feira, 12 de abril de 2013 17:25
  • Michele tente usar esse código :

    com.Parameters.Clear();

    dentro do loop e veja se resolve.


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    sexta-feira, 12 de abril de 2013 17:30