Usuário com melhor resposta
CRIAÇÃO DE PARÂMETROS VB.NET MYSQL

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.
Respostas
-
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.ClickDim thisConnection As New SqlConnection("server=(local)\SQLEXPRESS;" & _"integrated security=sspi;database=Teste_One")'Create Command object---cria o obejecto comandoDim nonqueryCommand As SqlCommand = thisConnection.CreateCommand()Try----inicia a conecao' Open ConnectionthisConnection.Open()MsgBox("Connection Opened")---avisa que a conecao vai ser aberta' Create INSERT statement with named parameters----cria o insert na tabela com parametrosnonqueryCommand.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 dadosnonqueryCommand.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 valoresnonqueryCommand.Parameters("@OBS").Value = Me.TextBox1.TextnonqueryCommand.Parameters("@FavarMe").Value = Me.TextBox2.TextDim ok As Integer = nonqueryCommand.ExecuteNonQuery()MsgBox(ok) ---diz quantos foram gravadosCatch ex As SqlException' Display errorMsgBox("Error: " & ex.ToString())Finally' Close ConnectionthisConnection.Close()---fecha a conecaoMsgBox("Connection Closed") ---avisa que foi fechadaEnd TryEnd SubObservacao:Eu nao gosto de usar isto:nonqueryCommand.Parameters("@OBS").Value = Me.TextBox1.TextnonqueryCommand.Parameters("@FavarMe").Value = Me.TextBox2.TextPorque?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
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. -
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.
-
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
-
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.ClickDim thisConnection As New SqlConnection("server=(local)\SQLEXPRESS;" & _"integrated security=sspi;database=Teste_One")'Create Command object---cria o obejecto comandoDim nonqueryCommand As SqlCommand = thisConnection.CreateCommand()Try----inicia a conecao' Open ConnectionthisConnection.Open()MsgBox("Connection Opened")---avisa que a conecao vai ser aberta' Create INSERT statement with named parameters----cria o insert na tabela com parametrosnonqueryCommand.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 dadosnonqueryCommand.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 valoresnonqueryCommand.Parameters("@OBS").Value = Me.TextBox1.TextnonqueryCommand.Parameters("@FavarMe").Value = Me.TextBox2.TextDim ok As Integer = nonqueryCommand.ExecuteNonQuery()MsgBox(ok) ---diz quantos foram gravadosCatch ex As SqlException' Display errorMsgBox("Error: " & ex.ToString())Finally' Close ConnectionthisConnection.Close()---fecha a conecaoMsgBox("Connection Closed") ---avisa que foi fechadaEnd TryEnd SubObservacao:Eu nao gosto de usar isto:nonqueryCommand.Parameters("@OBS").Value = Me.TextBox1.TextnonqueryCommand.Parameters("@FavarMe").Value = Me.TextBox2.TextPorque?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
-