none
Parameters sem perda de produtividade RRS feed

  • Pergunta

  • Sei que eh errado utilizar SQL desta forma?
    strSql = "SELECT * FROM table WHERE cmp =" + varCmp.toString()

    Por causa do SQL Injection e outras coisas mais!!
    Soh que o seguinte:
    Imagine que tenho 25 parametros !!!!!

    Vou  ter de criar um objeto parameter para cada um deles ??!!! E escrever o mesmo codigo para cada um???!!
    SQLParameter param1 = new SQLParameter();
    param1.Value = varCmp1;
    param1.Name = "@varCmp1";
    param.SqlDBType = SqlDbType.Int;


    Será que existe alguma forma mais produtiva de realizar essa tarefa ?? sem eu precisar ficar escrevendo um codigo enorme!


    Obrigado pela atenção galera !
    Abraão Alves - Um eterno estudante
    segunda-feira, 31 de agosto de 2009 20:10

Todas as Respostas

  • Abraão eu criei uma dll para ajudar nisso, ve se te ajuda:

    http://sqlgeneric.codeplex.com
    segunda-feira, 31 de agosto de 2009 20:49
  • Boa tarde.

    Na realidade não...

    O que você pode fazer é o seguinte.

    No seu objeto Command pode adicionar direto os parametros.

    SqlCommand command = new SqlCommand();
    
    command.Parameters.Add("@nomeDoParametro", "Seu Parametro Aqui");



    Daniel José da Silva.
    Analista de Sistemas.
    www.arcdeveloper.com
    segunda-feira, 31 de agosto de 2009 20:55
  • Abraão,

    Só complementando a resposta dos colegas.

    command.Parameters.Add("@NomeParametro", SqlDbType.TipoParametro, Tamanho).Value = valorParametro

    ou

    command.Parameters.Add("@NomeParametro", SqlDbType.TipoParametro).Value = valorParametro

    Exemplos:

    command.Parameters.Add("@Nome", SqlDbType.NVarChar, 50).Value = nome
    command.Parameters.Add("@Idade", SqlDbType.SmallInt).Value = idade
    command.Parameters.Add("@Peso", SqlDbType.Float).Value = peso

    Att.

    Ari C. Raimundo
    terça-feira, 1 de setembro de 2009 12:06