INSERT INTO

MOREIRA 23/03/2017 03:41:58
#472650
Amigo, apanhando e feio para aprender vb.net.

iniciando do básico.

qual a melhor prática de usar esse código abaixo para cadastrar...


  Private Sub btnGravEdit_Click(sender As Object, e As EventArgs) Handles btnGravEdit.Click
Try
ConectarBD() [ô]Abro o banco de dados
Cmd.CommandType = CommandType.Text
Cmd.CommandText = [Ô]INSERT INTO TBPRODUTO (DESCRICAO) VALUES (@DESCRICAO);[Ô]
Cmd.Parameters.Add(New FbParameter([Ô]@DESCRICAO[Ô], txt_RazaoSocial.Text))
[txt-color=#e80000][ô]cnn.Open() ---> dando erro nessa linha[/txt-color]
Cmd.ExecuteNonQuery()
[ô]cnn.Close()

Catch ex As Exception
[ô]mesg erro
Finally
[ô]msg erro
End Try


End Sub
CMORETI 23/03/2017 04:36:00
#472651
Moreira, provavelmente vc já está abrindo o banco no ConectaBD().
Quanto a melhor prática de usar códigos desse tipo: eu sempre crio procedures para ler, escrever, deletar e atualizar.
O código fica mais [Ô]limpo[Ô] e fácil de ler.

Abraços
MESTRE 23/03/2017 07:10:32
#472652
  Dim query as String = String.Empty
query = [Ô]INSERT INTO student (colName, colID, colPhone, colBranch, colCourse, coldblFee) VALUES (@colName,@colID, @colPhone, @colBranch,@colCourse, @coldblFee)[Ô]

Using conn as New SqlConnection([Ô]connectionStringHere[Ô])
Using comm As New SqlCommand()
With comm
.Connection = conn
.CommandType = CommandType.Text
.CommandText = query
.Parameters.AddWithValue([Ô]@colName[Ô], strName)
.Parameters.AddWithValue([Ô]@colID[Ô], strId)
.Parameters.AddWithValue([Ô]@colPhone[Ô], strPhone)
.Parameters.AddWithValue([Ô]@colBranch[Ô], strBranch)
.Parameters.AddWithValue([Ô]@colCourse[Ô], strCourse)
.Parameters.AddWithValue([Ô]@coldblFee[Ô], dblFee)
End With
Try
conn.open()
comm.ExecuteNonQuery()
Catch(ex as SqlException)
MessageBox.Show(ex.Message.ToString(), [Ô]Error Message[Ô])
End Try
End Using
End USing

DS2T 23/03/2017 08:49:50
#472659
Bom dia!

Todos meus Insert Intos são feitos através do meu framework de mapeamento objeto relacional.
Basicamente, eu mapeio uma entidade com os campos do banco de dados.
E usando Reflection, pego os valores, nomes dos campos e tipo da propriedade pra montar o Insert Into.

Gosto desse método porque sei exatamente o que está rolando com meu código, até porque não tenho pleno domínio do Entity Framework.
Mas usar EF também é uma ótima ideia. Ferramenta muito poderosa, cheia de recursos e que está sendo muito bem vista no mercado.

Abraços!
JABA 23/03/2017 11:18:22
#472672
Resposta escolhida
Coloque aí o erro que tá dando. Será que não faltou um Cmd.Connection = cnn?
MOREIRA 24/03/2017 00:43:59
#472700

Mudei algumas coisas. ainda nao consigo gravar

  Private Sub btnGravEdit_Click(sender As Object, e As EventArgs) Handles btnGravEdit.Click


ConectarBD() [ô]Abro o banco de dados
Cmd.CommandText = [Ô]INSERT INTO TBPRODUTO(DESCRICAO) VALUES(@DESCRICAO)[Ô]
Cmd.Parameters.Add([Ô]@DESCRICAO[Ô], FbDbType.VarChar).Value = txt_NomeFantasia.Text
Cmd.Connection = cnn

Cmd.CommandType = CommandType.StoredProcedure
Try
cnn.Open()
Cmd.ExecuteNonQuery()

Catch ex As Exception
[ô]MessageBox.Show(message.ToString(), [Ô]Error Message[Ô])
End Try

End Sub
JABA 24/03/2017 02:28:10
#472701
E o erro gerado?
MOREIRA 24/03/2017 07:50:26
#472703
Citação:

:
E o erro gerado?




ERRO

An unhandled exception of type [ô]System.ArgumentException[ô] occurred in FirebirdSql.Data.FirebirdClient.dll
Additional information: FbParameterCollection already contains FbParameter with ParameterName [ô]@DESCRICAO[ô].

OMAR2011 24/03/2017 08:21:35
#472704
Se é [txt-color=#007100]StoredProcedure[/txt-color] porque do[txt-color=#e80000] Insert[/txt-color]


Private Sub btnGravEdit_Click(sender As Object, e As EventArgs) Handles btnGravEdit.Click
ConectarBD() [ô]Abro o banco de dados
Cmd.CommandText = [Ô]INSERT INTO TBPRODUTO(DESCRICAO) VALUES(@DESCRICAO)[Ô] [ô] [txt-color=#e80000]Olhe isto[/txt-color]
Cmd.Parameters.Add([Ô]@DESCRICAO[Ô], FbDbType.VarChar).Value = txt_NomeFantasia.Text
Cmd.Connection = cnn

Cmd.CommandType = CommandType.StoredProcedure [ô] [txt-color=#e80000]Olhe isto[/txt-color]
Try
cnn.Open()
Cmd.ExecuteNonQuery()

Catch ex As Exception
[ô]MessageBox.Show(message.ToString(), [Ô]Error Message[Ô])
End Try

End Sub
MOREIRA 24/03/2017 09:00:52
#472707
Eu estou usando assim e continua com o mesmo erro

Private Sub btnGravEdit_Click(sender As Object, e As EventArgs) Handles btnGravEdit.Click


ConectarBD() [ô]Abro o banco de dados
Cmd.CommandType = CommandType.StoredProcedure
Cmd.CommandText = [Ô]INSERT INTO TBPRODUTO (DESCRICAO) VALUES (@DESCRICAO)[Ô]
Cmd.Parameters.Add(New FbParameter([Ô]@DESCRICAO[Ô], txt_RazaoSocial.Text))
Try
cnn.Open()
Cmd.ExecuteNonQuery()

Catch ex As Exception
[ô]MessageBox.Show(message.ToString(), [Ô]Error Message[Ô])
End Try

End Sub
MFLAVIO 24/03/2017 09:22:37
#472708
Amigo qual tipo de base de dados?
Se você For usar Linguagem SQL, pode fazer assim e bem mais simples
         
Static CMD As FbCommand

Try

SQL = [Ô][Ô]
SQL = [Ô]Insert into cad_cliente(nome,endereco,fone)[Ô] & _
[Ô]values(@nome,@endereco,@fone)[Ô]

CMD = New FbCommand(SQL, conexaoFB)
CMD.Parameters.Add([Ô]@nome[Ô], FbDbType.Char, 80).Value = TXT_nome.Text.Replace([Ô]-[Ô], [Ô][Ô]).ToUpper
CMD.Parameters.Add([Ô]@endereco[Ô], FbDbType.Char, 90).Value = TXT_end.Text
CMD.Parameters.Add([Ô]@fone[Ô], FbDbType.Char, 16).Value = MSK_fone.Text

CMD.ExecuteNonQuery()
CMD.Dispose()

Catch ex As Exception
MsgBox(ex.Message)
CMD.Dispose()
End Try

Página 1 de 2 [17 registro(s)]
Tópico encerrado , respostas não são mais permitidas