INSERT INTO
                    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...
            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 
                
                    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
            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
  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 
 
                    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!
            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!
                    Coloque aà o erro que tá dando. Será que não faltou um Cmd.Connection = cnn?
                
            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 
                
                    E o erro gerado?
                
            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[ô].
                    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
            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
                    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
            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
                    Amigo qual tipo de base de dados?
Se você For usar Linguagem SQL, pode fazer assim e bem mais simples
                
            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
  
                        Tópico encerrado , respostas não são mais permitidas