ERRO DE INSERCAO EM BASE DE DADOS COM SQLCECONNECT
Bom dia.
Estou com um problema de inserção numa base de dados com o seguinte código.
Não dá qualquer tipo de erro. Se eu visualizar os dados da tabela clientes com um datagrid o último registo inserido aparece mas quando fecho o VB e volto a abrir o registo inserido já não aparece.
Imports System.Data.SqlServerCe
Imports System.IO
Public Class Inserir_Clientes
Dim conClientes As New SqlCeConnection()
Dim cmdClientes As New SqlCeCommand()
Dim daClientes As New SqlCeDataAdapter()
Dim dsClientes As New DataSet()
Dim cbClientes As New SqlCeCommandBuilder()
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
conClientes = New SqlCeConnection(My.Settings.Clube_VideoConnectionString)
cmdClientes = New SqlCeCommand([Ô]Select * from Clientes[Ô], conClientes)
daClientes = New SqlCeDataAdapter(cmdClientes)
dsClientes = New DataSet()
With conClientes
If .State = ConnectionState.Open Then [ô]ta aberto
.Close() [ô] fechamos
End If
.Open() [ô] abrimos a conexao
End With
daClientes.Fill(dsClientes, [Ô]consulta[Ô])
cbClientes = New SqlCeCommandBuilder(daClientes)
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]informação do Sistema[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Dim dsnewrow As DataRow
dsnewrow = dsClientes.Tables([Ô]consulta[Ô]).NewRow()
dsnewrow.Item([Ô]N_Cliente[Ô]) = N_ClienteTextBox.Text
dsnewrow.Item([Ô]N_BI[Ô]) = N_BITextBox.Text
dsnewrow.Item([Ô]Nome[Ô]) = NomeTextBox.Text
dsnewrow.Item([Ô]Data_nascimento[Ô]) = Data_nascimentoTextBox.Text
dsnewrow.Item([Ô]Rua[Ô]) = RuaTextBox.Text
dsnewrow.Item([Ô]Cod_postal[Ô]) = Cod_postalTextBox.Text
dsnewrow.Item([Ô]Localidade[Ô]) = LocalidadeTextBox.Text
dsnewrow.Item([Ô]Telefone[Ô]) = TelefoneTextBox.Text
dsClientes.Tables([Ô]consulta[Ô]).Rows.Add(dsnewrow)
daClientes.Update(dsClientes, [Ô]consulta[Ô])
conClientes.Close()
End Sub
End Class
Estou com um problema de inserção numa base de dados com o seguinte código.
Não dá qualquer tipo de erro. Se eu visualizar os dados da tabela clientes com um datagrid o último registo inserido aparece mas quando fecho o VB e volto a abrir o registo inserido já não aparece.
Imports System.Data.SqlServerCe
Imports System.IO
Public Class Inserir_Clientes
Dim conClientes As New SqlCeConnection()
Dim cmdClientes As New SqlCeCommand()
Dim daClientes As New SqlCeDataAdapter()
Dim dsClientes As New DataSet()
Dim cbClientes As New SqlCeCommandBuilder()
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
conClientes = New SqlCeConnection(My.Settings.Clube_VideoConnectionString)
cmdClientes = New SqlCeCommand([Ô]Select * from Clientes[Ô], conClientes)
daClientes = New SqlCeDataAdapter(cmdClientes)
dsClientes = New DataSet()
With conClientes
If .State = ConnectionState.Open Then [ô]ta aberto
.Close() [ô] fechamos
End If
.Open() [ô] abrimos a conexao
End With
daClientes.Fill(dsClientes, [Ô]consulta[Ô])
cbClientes = New SqlCeCommandBuilder(daClientes)
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]informação do Sistema[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Dim dsnewrow As DataRow
dsnewrow = dsClientes.Tables([Ô]consulta[Ô]).NewRow()
dsnewrow.Item([Ô]N_Cliente[Ô]) = N_ClienteTextBox.Text
dsnewrow.Item([Ô]N_BI[Ô]) = N_BITextBox.Text
dsnewrow.Item([Ô]Nome[Ô]) = NomeTextBox.Text
dsnewrow.Item([Ô]Data_nascimento[Ô]) = Data_nascimentoTextBox.Text
dsnewrow.Item([Ô]Rua[Ô]) = RuaTextBox.Text
dsnewrow.Item([Ô]Cod_postal[Ô]) = Cod_postalTextBox.Text
dsnewrow.Item([Ô]Localidade[Ô]) = LocalidadeTextBox.Text
dsnewrow.Item([Ô]Telefone[Ô]) = TelefoneTextBox.Text
dsClientes.Tables([Ô]consulta[Ô]).Rows.Add(dsnewrow)
daClientes.Update(dsClientes, [Ô]consulta[Ô])
conClientes.Close()
End Sub
End Class
Caro colega posta para nos o carregamento do DataGrid.
Pois esse código pelo que percebi é para inserção apesar de carregar o grid
Uma idéia o código de carregamento do grid deve ser separador pois após inserir algo na tabela
e fechar a conexão do banco chama esse código de preenchimento.
Pois esse código pelo que percebi é para inserção apesar de carregar o grid
Uma idéia o código de carregamento do grid deve ser separador pois após inserir algo na tabela
e fechar a conexão do banco chama esse código de preenchimento.
O que eu pretendo é carregar no Datagrid e inserir também o novo registo na tabela do banco de dados.
Este código eu tenho num botão.
Não percebi bem qual é a sua ideia? Colocar o mesmo código no evento de fecho do form?
Obrigado.
Este código eu tenho num botão.
Não percebi bem qual é a sua ideia? Colocar o mesmo código no evento de fecho do form?
Obrigado.
Tópico encerrado , respostas não são mais permitidas