Ivanelson 0 Denunciar post Postado Setembro 4, 2008 Oi galera... estou tendo problemas em salvar os dados no VB 2008 usando o BD Access 2007 Eu consigo ver os registro q eu coloquei para teste usando o Access, mas o q eu adiciono usando o codigo ele so mostra enquanto ele esta rodando, depois q eu fecho, quando volta ñ tem os registros adicionados. O codigo de p/ adicionar esta assim: CODE Private Sub btnNovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNovo.Click txtCod.Text = "" txtNome.Text = "" cmbSexo.Text = "" txtCod.Focus() C_Manager.AddNew() End Sub Private Sub btnSalvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalvar.Click 'Salva os novos dados C_Manager.EndCurrentEdit() C_Manager.Refresh() 'Ordena a tabela por uma determinada tabela Tabela.DefaultView.Sort = "Nome" End Sub Oq esta errado? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Setembro 5, 2008 Sua aplicação é web ou windows? Outra coisa o que são é isso C_Manager.EndCurrentEdit() ? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Ivanelson 0 Denunciar post Postado Setembro 5, 2008 Imports System.Data Imports System.Data.OleDb Module Teste 'Faz a conexão com o bando de dados Public Conexão As OleDbConnection Public strCon As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Visual Studio 2008\Projects\TesteAccess_Linhas\TesteAccess_Linhas\Teste.accdb" 'Usado para comando SQL para Abrir e selecionar tabelas Public Comandos As OleDbCommand Public strCom As String 'Faz o acesso do Banco de dados, via uma conexão previa Public Adapitador As New OleDbDataAdapter 'DataAdapter atravez do comando .Fill preenche a tabela Public Tabela As New DataTable 'Comando para apresentação dos dados Public C_Manager As CurrencyManager 'Cotandor para a posição mostrada no form Public Pos As Integer End Module Imports System.Data Imports System.Data.OleDb Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Conexão = New OleDbConnection(strCon) Conexão.Open() '------------------------Teste------------------------- strCom = "SELECT DISTINCT Sexo from Teste ORDER BY Sexo" Comandos = New OleDbCommand(strCom, Conexão) Adapitador.SelectCommand = Comandos Adapitador.Fill(Tabela) C_Manager = DirectCast(Me.BindingContext(Tabela), CurrencyManager) C_Manager.Position = 0 Dim cont As Integer cmbSexo.DataBindings.Add("Text", Tabela, "Sexo") For cont = 0 To C_Manager.Count - 1 cmbSexo.Items.Add(cmbSexo.Text) C_Manager.Position += 1 Next Tabela.Clear() strCom = "SELECT * from Teste ORDER BY Nome" Comandos = New OleDbCommand(strCom, Conexão) Adapitador.SelectCommand = Comandos Adapitador.Fill(Tabela) C_Manager = DirectCast(Me.BindingContext(Tabela), CurrencyManager) C_Manager.Position = 0 '------------------------------------------------------ 'Vincula os dados da tabela com o icone txtCod.DataBindings.Add("Text", Tabela, "Cod") txtNome.DataBindings.Add("Text", Tabela, "Nome") 'cmbSexo.DataBindings.Add("Text", Tabela, "Sexo") 'Barra de Posições Pos = 1 If C_Manager.Count > 0 Then lblPos.Text = Pos & "/" & C_Manager.Count Else lblPos.Text = "Sem Registristros" End If End Sub Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPri.Click C_Manager.Position = 0 Pos = 1 lblPos.Text = Pos & "/" & C_Manager.Count End Sub Private Sub btnAnt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAnt.Click C_Manager.Position -= 1 If C_Manager.Position = 0 Then Pos = 1 Else Pos -= 1 End If lblPos.Text = Pos & "/" & C_Manager.Count End Sub Private Sub btnPro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPro.Click C_Manager.Position += 1 If C_Manager.Position = C_Manager.Count - 1 Then Pos = C_Manager.Count Else Pos += 1 End If lblPos.Text = Pos & "/" & C_Manager.Count End Sub Private Sub btnUlt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUlt.Click C_Manager.Position = C_Manager.Count - 1 Pos = C_Manager.Count lblPos.Text = Pos & "/" & C_Manager.Count End Sub Private Sub Estado(ByVal Est As Integer) Select Case Est Case 1 'Edição Case 2 'Visualisão End Select End Sub Private Sub btnNovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNovo.Click txtCod.Text = "" txtNome.Text = "" cmbSexo.Text = "" txtCod.Focus() C_Manager.AddNew() End Sub Private Sub btnSalvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalvar.Click 'Salva os novos dados C_Manager.EndCurrentEdit() C_Manager.Refresh() 'Ordena a tabela por uma determinada tabela Tabela.DefaultView.Sort = "Nome" '------------------Para se retornar no Item Salvo----------------- 'obtem o id da linha Salva 'linhaSalva = Tabela.DefaultView.Find("pode ser o codigo do cliente") 'atribui a posição da linha em edição ao CurrencyManager 'C_Manager.Position = linhaSalva End Sub Private Sub btnSair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSair.Click Conexão.Close() Me.Close() End Sub End Class É este o meu código... é bem simples mas é apenas um teste... É para aplicações do windows... um forma q manipula dados Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Setembro 5, 2008 Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET » Windows Applications Mas qual o momento que você insere os dados?? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Ivanelson 0 Denunciar post Postado Setembro 7, 2008 no btnNovo eu dou o comando AddNew() então teoricamente ou estou criando um espaço para um novo registro e abrindo a edição, então no btnSalvar eu uso o comando EndCurrentEdit() para encerar a edição e pelo oq eu vi já deveria estar salvo... mas ele ñ salva na tabela os meus resgistros novos... ele so mostra enquanto esta em execução... Eu andei pesquisando mais um pouco e acho q eu descobri o pq disso, oq acontece é q o CurrencyManager seria uma tabela "virtual", então enquanto ele esta em execução beleza, mas quando eu encerro o programa ela se perde. Teria q fazer algo para salvar os dados na tabela real no meu banco de dados... mas ñ sei como fazer isso. Obrigado, abraços Compartilhar este post Link para o post Compartilhar em outros sites