Caulfield 0 Denunciar post Postado Setembro 2, 2010 Galera é o seguinte... estou aprendendo a utilizar o Firebird. Eu consgui fazer a conexão e exibiros dados no DataGridView da seguinte maneira... Imports FirebirdSql.Data.FirebirdClient Public Class Form1 Private DA As Odbc.OdbcDataAdapter Private DS As DataSet Dim i As Integer Dim regs As Integer Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim myConnection As Odbc.OdbcConnection = New Odbc.OdbcConnection() Dim myConnectionString As String myConnectionString = "Dsn=TRABALHOS;Driver={Firebird/InterBase(r) driver};dbname=D:\Arquivos Disco C\ProgramaRosset\DESPROJETO.FDB;charset=NONE;uid=SYSDBA" myConnection.ConnectionString = myConnectionString Dim SQL As String = "SELECT * FROM TESTE" DA = New Odbc.OdbcDataAdapter(SQL, myConnection) DS = New DataSet DA.Fill(DS, "TESTE") Me.DataGridView1.DataSource = DS.Tables("TESTE") End Sub Criei uma caixa de texto e tentei inserir os dados dela no banco e não consegui... Ele até acrescenta os dados no DAtaGridView, mas não no banco de dados. O código que estou usando é esse: Dim dsNovaLinha As DataRow dsNovaLinha = DS.Tables("TESTE").NewRow() dsNovaLinha("NOME") = txtFirstname.Text DS.Tables("TESTE").Rows().Add(dsNovaLinha) DS.AcceptChanges() DA.Update(DS, "TESTE") O que está errado? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Setembro 3, 2010 Pesquise sobre ExecuteNonQuery, faça o insert na mão, acho que será melhor. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Caulfield 0 Denunciar post Postado Setembro 6, 2010 Mudei o código para isso: Try Dim Inserir As Odbc.OdbcCommandBuilder() Dim dsNovaLinha As DataRow dsNovaLinha = DS.Tables("TESTE").NewRow() dsNovaLinha.Item("NOME") = txtFirstname.Text DS.Tables("TESTE").Rows.Add(dsNovaLinha) DA.Update(DS, "TESTE") Catch ex As Exception MsgBox("ERRO" & vbCrLf & ex.Message) End Try E agora dá a seguinte mensagem de erro... "A atualização requer um InsertCommand válido para transmitir coleção DataRow com novas linhas." Pesquise sobre ExecuteNonQuery, faça o insert na mão, acho que será melhor. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Caulfield 0 Denunciar post Postado Setembro 6, 2010 Consegui... tive que alterar o código pra isso: Dim connetionString As String Dim connection As Odbc.OdbcConnection Dim adapter As New Odbc.OdbcDataAdapter Dim sql As String Dim NovoNome As String NovoNome = txtFirstname.Text connetionString = "Dsn=TRABALHOS;Driver={Firebird/InterBase(r) driver};dbname=D:\Arquivos Disco C\ProgramaRosset\DESPROJETO.FDB;charset=NONE;uid=SYSDBA" connection = New Odbc.OdbcConnection(connetionString) sql = "insert into TESTE (NOME) values('" & NovoNome & "')" Try connection.Open() adapter.InsertCommand = New Odbc.OdbcCommand(sql, connection) adapter.InsertCommand.ExecuteNonQuery() MsgBox("Row inserted !! ") Catch ex As Exception MsgBox(ex.ToString) End Try Valeu pela ajuda. Compartilhar este post Link para o post Compartilhar em outros sites