none
CRIAÇÃO DE PARÂMETROS VB.NET MYSQL RRS feed

  • Pergunta

  • Preciso da ajuda de vocês pra entender como funciona a aplicação de parâmetros dentro de uma aplicação no VB.NET.

    Observo que é uma técnica muito utilizada nas transações de manutenção (CRUD) em BD, porém, ainda não consigo entender como funciona a syntaxe da criação de "PARAMETERS" dentro do VB.NET, se é assim que se chama. Sou bastante leigo neste assunto e gostaria, se possível, de um exemplo bem simples para entender como funciona a criação e aplicação numa transação (CRUD) em VB.NET com MySQL.

    Recebi alguns exemplos até do próprio Malange aqui neste Fórun, mas ainda não consegui entender muito bem.

     

    Desde já muito obrigado.

     

    Geraldo Ribeiro.

     

    quinta-feira, 16 de junho de 2011 14:08

Respostas

  •     Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
            Dim thisConnection As New SqlConnection("server=(local)\SQLEXPRESS;" & _
             "integrated security=sspi;database=Teste_One")
            'Create Command object---cria o obejecto comando
            Dim nonqueryCommand As SqlCommand = thisConnection.CreateCommand()
            Try----inicia a conecao
                ' Open Connection
                thisConnection.Open()
                MsgBox("Connection Opened")---avisa que a conecao vai ser aberta
                ' Create INSERT statement with named parameters----cria o insert na tabela com parametros
                nonqueryCommand.CommandText = "INSERT INTO Table_OBS VALUES(@OBS, @FavarMe)"
                ' Add Parameters to Command Parameters collection ----prepara o parametro e diz que tipo de campo voce na base de dados
                nonqueryCommand.Parameters.Add("@OBS", SqlDbType.NVarChar, 50)
                nonqueryCommand.Parameters.Add("@FavarMe", SqlDbType.NVarChar, 50)
                ' Prepare command for repeated execution ---diz que vai ser executado
                'nonqueryCommand.Prepare()
                ' Data to be inserted aqui voce passa os valores 
                nonqueryCommand.Parameters("@OBS").Value = Me.TextBox1.Text
                nonqueryCommand.Parameters("@FavarMe").Value = Me.TextBox2.Text
                Dim ok As Integer = nonqueryCommand.ExecuteNonQuery()
                MsgBox(ok) ---diz quantos foram gravados
            Catch ex As SqlException
                ' Display error
                MsgBox("Error: " & ex.ToString())
            Finally
                ' Close Connection
                thisConnection.Close()---fecha a conecao
                MsgBox("Connection Closed") ---avisa que foi fechada
            End Try
        End Sub
    Observacao:
    Eu nao gosto de usar isto:
     nonqueryCommand.Parameters("@OBS").Value = Me.TextBox1.Text
     nonqueryCommand.Parameters("@FavarMe").Value = Me.TextBox2.Text
    Porque?
    Neste codigo, ele vai a tabela e fica a procura do campo, do tipo de campo. So depois e que ele grava quando achar o campo.
    A melhor forma seria voce fazer assim:
     nonqueryCommand.Parameters.Add(New SqlParameter("@OBS", Me.TextBox1.Text.ToString()))
    ou ainda de uma :
     nonqueryCommand.Parameters.AddWithValue("@OBS", Me.TextBox1.Text) ---este codigo e muito mais rapido. Porque o Sql e muito clever, ele sabe qual e o campo em que vai gravar, nao precisa procurar.

    One word frees us of all the weight and pain of life: that word is love.
    • Sugerido como Resposta Luiz Estevam quinta-feira, 16 de junho de 2011 22:49
    • Marcado como Resposta Geraldo Ribeiro sexta-feira, 17 de junho de 2011 00:57
    quinta-feira, 16 de junho de 2011 17:52

Todas as Respostas

  • O uso de parametros veio devido ao store procedure no SQL, geralmente quando se escreve storeprocedure no SQL entao espera-se usar parametros vb.net, csharp etc.

    Entao ficou praticmanete na "moda" usar paramatros mesmo que voce nao usar store procedure. ---Existe pessoas que nao gostam de usar store procedure --- eu sou uma delas.

    Sempre que voce vai fazer input---passar uma informacao, variavel no Sql entao e bom usar parametros do que passar direitamente a variavel no teu codigo.

    Usando parametros torna o codigo "BONITO" e facil de fazer tratamento de erros. por exemplo quando voce quer garavar datas na tabela. Fica dificil que voce passar direitamente, se o usuario escrever um numero errado ou um formato errado entao gera bug.

    Com parametros podes evitar por fazer o tratamento primeiro.

    parametros nao aparece so quando se usa tabelas.

    ----criaste um parametro em c# fica assim private string venderor(stirng valor){}


    One word frees us of all the weight and pain of life: that word is love.
    quinta-feira, 16 de junho de 2011 14:29
  • Malange sem querer abusar da sua oa vontade, poderias colocar aqui um código utilizando parametros e explicar o mesmo pra mim???? Eu consigo entender melhor observando o código.

     

    Se possível, por exemplo:

    Tenho um Form com um textbox chamado txtNome, como ficaria um parâmetro num evento click de um botão para executar um ISERT INTO, utilizando parâmetro???

     

    Muito obrigado.

    quinta-feira, 16 de junho de 2011 16:58
  • Geraldo,

    Dê uma olhada neste artigo que explica a utilização de parâmetros, acho que deve te ajudar:

    http://www.macoratti.net/09/07/c_adn_7.htm

    at.,


    Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono)
    • Sugerido como Resposta Luiz Estevam quinta-feira, 16 de junho de 2011 22:49
    quinta-feira, 16 de junho de 2011 17:40
    Moderador
  •     Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
            Dim thisConnection As New SqlConnection("server=(local)\SQLEXPRESS;" & _
             "integrated security=sspi;database=Teste_One")
            'Create Command object---cria o obejecto comando
            Dim nonqueryCommand As SqlCommand = thisConnection.CreateCommand()
            Try----inicia a conecao
                ' Open Connection
                thisConnection.Open()
                MsgBox("Connection Opened")---avisa que a conecao vai ser aberta
                ' Create INSERT statement with named parameters----cria o insert na tabela com parametros
                nonqueryCommand.CommandText = "INSERT INTO Table_OBS VALUES(@OBS, @FavarMe)"
                ' Add Parameters to Command Parameters collection ----prepara o parametro e diz que tipo de campo voce na base de dados
                nonqueryCommand.Parameters.Add("@OBS", SqlDbType.NVarChar, 50)
                nonqueryCommand.Parameters.Add("@FavarMe", SqlDbType.NVarChar, 50)
                ' Prepare command for repeated execution ---diz que vai ser executado
                'nonqueryCommand.Prepare()
                ' Data to be inserted aqui voce passa os valores 
                nonqueryCommand.Parameters("@OBS").Value = Me.TextBox1.Text
                nonqueryCommand.Parameters("@FavarMe").Value = Me.TextBox2.Text
                Dim ok As Integer = nonqueryCommand.ExecuteNonQuery()
                MsgBox(ok) ---diz quantos foram gravados
            Catch ex As SqlException
                ' Display error
                MsgBox("Error: " & ex.ToString())
            Finally
                ' Close Connection
                thisConnection.Close()---fecha a conecao
                MsgBox("Connection Closed") ---avisa que foi fechada
            End Try
        End Sub
    Observacao:
    Eu nao gosto de usar isto:
     nonqueryCommand.Parameters("@OBS").Value = Me.TextBox1.Text
     nonqueryCommand.Parameters("@FavarMe").Value = Me.TextBox2.Text
    Porque?
    Neste codigo, ele vai a tabela e fica a procura do campo, do tipo de campo. So depois e que ele grava quando achar o campo.
    A melhor forma seria voce fazer assim:
     nonqueryCommand.Parameters.Add(New SqlParameter("@OBS", Me.TextBox1.Text.ToString()))
    ou ainda de uma :
     nonqueryCommand.Parameters.AddWithValue("@OBS", Me.TextBox1.Text) ---este codigo e muito mais rapido. Porque o Sql e muito clever, ele sabe qual e o campo em que vai gravar, nao precisa procurar.

    One word frees us of all the weight and pain of life: that word is love.
    • Sugerido como Resposta Luiz Estevam quinta-feira, 16 de junho de 2011 22:49
    • Marcado como Resposta Geraldo Ribeiro sexta-feira, 17 de junho de 2011 00:57
    quinta-feira, 16 de junho de 2011 17:52
  • Muitíssimo obrigado...agora sim ficou claro...

     

    Obrigado mesmo

    sexta-feira, 17 de junho de 2011 00:58