none
Atualizando tabela com BindingSource RRS feed

  • Pergunta

  • Olá pessoal,

    Estou aprendendo a usar o BindingSource e estou tendo dificuldade de como Adicionar, editar e excluir com esse componente.

    Abaixo coloquei o clique de um botão onde ele preenche meu datagridview.

    private void button1_Click(object sender, EventArgs e)
    {
                Connect conexao = new Connect();
                OracleConnection strconn = new
    oracleConnection(conexao.conn_ora());
    
                strconn.Open();
                string sql = @"select * from usuario";
    
                OracleCommand conn = new OracleCommand(sql, strconn);
    
                
                da.Fill(ds);
    
                bs.DataSource = ds;
    
                bs.DataMember = ds.Tables[0].TableName;
    
                dataGridView1.DataSource = bs;
                
                strconn.Close();
    }
    
    


    Quando clico no botão ele preenche meu datagridview sem problema.
    Realizo uma alteração no datagrid e em outro botão coloquei o seguinte código:

    private void button3_Click(object sender, EventArgs e)
    {
                
                this.bs.EndEdit();
                this.Validate();
                da.Update(ds);
    
    }
    
    


    Só que no comando da.Update(ds); dá o seguinte erro:

    System.InvalidOperationException was unhandled
    Message="A atualização não pode encontrar TableMapping['Table'] ou DataTable 'Table'."

    Segue todo o código do meu teste.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.OracleClient;
    
    namespace CadastroRelatorio
    {
        public partial class Teste : Form
        {
            BindingSource bs = new BindingSource();
            OracleDataAdapter da = new OracleDataAdapter();
            DataSet ds = new DataSet();
            
            public Teste()
            {
                InitializeComponent();
            }
    
    
            private void button1_Click(object sender, EventArgs e)
            {
                Connect conexao = new Connect();
                OracleConnection strconn = new OracleConnection(conexao.conn_ora());
    
                strconn.Open();
                string sql = @"select * from jav.usuario";
    
                OracleCommand conn = new OracleCommand(sql, strconn);
    
                
                da.Fill(ds);
    
                //BindingSource bs = new BindingSource(ds, ds.Tables[0].TableName);
                bs.DataSource = ds;
    
                bs.DataMember = ds.Tables[0].TableName;
    
                dataGridView1.DataSource = bs;
                
                strconn.Close();
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                bs.Filter = "cod_usuario ='" + textBox1.Text+"'";
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                
                this.bs.EndEdit();
                this.Validate();
                da.Update(ds);
    
            }
        }
    }
    
    


    Grato

    Josenias
    quinta-feira, 3 de dezembro de 2009 20:08

Respostas

Todas as Respostas