none
Queries Parametrizadas(Para evitar SQL Injection ) RRS feed

  • Pergunta

  • Olá amigos! Venho novamente fazer mais perguntas e tenho que agradecer pela grande ajuda que tenho recebido de vocês.  Bom, estou inciando em C# e tenho dúvidas sobre dúvidas. Essa em particular é um desespero que não consigo entender. Por favor, alguém me explica(em português) como se fosse explicar para uma criança, como  funciona o MySqlParameterCollection e o MySqlParameter  em que classe devo criar o método que irá executar isso. Sei que o intuito dessa é "tratar" os valores "inputados" pelos usuários, onde esses serão parte de um consulta, inserção, alteração ou exclusão no banco, a fim de evita os chamandos SQL Injections como por exemplo a famosa "aspa simples de concatenação sql" juntamente aos operadores "or e and". Sinceramente, preciso de ajuda. Grato desde já! 

    quarta-feira, 20 de abril de 2011 14:43

Respostas

  • Junior, você já deve ter visto que existe o MySqlCommand certo? Ou seja, é um objeto que executará os comandos na base de dados OK? Este objeto de comando receber sua string sql, que será executada e internamente implementa um MySqlParameterCollection, ou seja, uma coleção de parametros, que são os MySqlParameters, então você cria seus parametros e adicona ao seu objeto de comando, que internamente o objeto de comando irá adicionar em um MySqlParameterCollection e utiliza-los na execução do comando.

    Entendeu?

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    quarta-feira, 20 de abril de 2011 15:08
  • Junior, Por exemplo assim:

    string strSql = "INSERT INTO distribuidor (cod,nome) values (@cod, @nome)";

    MySqlCommando comand = new MySqlCommand(strSql, conexao);

    MySqlParameter pCod = new MySqlParameter("@cod", 1);
    MySqlParameter pNome = new MySqlParameter("@nome", "Junior");

    command.Parameters.Add(pCod);
    command.Parameters.Add(pNome);

     

    Alguns links que podem ajudar.

    http://www.mundoasp.net/utilizando-o-mysql-em-c-sharp-e-asp-dot-net/

    http://www.macoratti.net/08/08/c_mysql1.htm

    Video.

    http://www.youtube.com/watch?v=Qafn-RGMh7g

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    quarta-feira, 20 de abril de 2011 18:20

Todas as Respostas

  • Junior, você já deve ter visto que existe o MySqlCommand certo? Ou seja, é um objeto que executará os comandos na base de dados OK? Este objeto de comando receber sua string sql, que será executada e internamente implementa um MySqlParameterCollection, ou seja, uma coleção de parametros, que são os MySqlParameters, então você cria seus parametros e adicona ao seu objeto de comando, que internamente o objeto de comando irá adicionar em um MySqlParameterCollection e utiliza-los na execução do comando.

    Entendeu?

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    quarta-feira, 20 de abril de 2011 15:08
  • Estou confuso será que tem como mostrar um código de exemplo. Por exemplo, eu tenho uma tabela Getores com dois atributos, Cod e Nome. Já tenho uma classe de conexão com o banco. Tenho também um formulário com dois campos e um  botão para a inserção dos dados por parte dos usuários. Quando acionar o botão "Cadastrar" por exemplo, esse chamará o método da classe Gestores.cadastrarGestrores() que por sua vez chamará o método que estou querendo construir que seria o como os atributos que forma a querie parametrizados.Digamos que o código SQL a ser inserido seja o abaixo:

     "INSERT INTO distribuidor (cod,nome) values(4,Mario)





    quarta-feira, 20 de abril de 2011 17:35
  • Junior, Por exemplo assim:

    string strSql = "INSERT INTO distribuidor (cod,nome) values (@cod, @nome)";

    MySqlCommando comand = new MySqlCommand(strSql, conexao);

    MySqlParameter pCod = new MySqlParameter("@cod", 1);
    MySqlParameter pNome = new MySqlParameter("@nome", "Junior");

    command.Parameters.Add(pCod);
    command.Parameters.Add(pNome);

     

    Alguns links que podem ajudar.

    http://www.mundoasp.net/utilizando-o-mysql-em-c-sharp-e-asp-dot-net/

    http://www.macoratti.net/08/08/c_mysql1.htm

    Video.

    http://www.youtube.com/watch?v=Qafn-RGMh7g

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    quarta-feira, 20 de abril de 2011 18:20