none
Estado do DataRow RRS feed

  • Pergunta

  • Olá Pessoal,

    Como faço para saber o estado de uma DataRow:

    1) Quando estou incluindo uma dr nova; e

    2) Quando estou editando uma dr existente.

    obrigado

    quinta-feira, 18 de maio de 2006 19:22

Respostas

  • Ola Pessoal,

    Consegui encontrar no site Marcoratti (http://www.macoratti.net/adn2_rw1.htm) um exemplo que esclareceu as minhas dúvidas.

    Segue abaixo o exemplo feito pelo Marcoratti (fiz a conversão de VB para C#).

    //---------------------------------------------------------------

    Crie um Form com um DataGridView e um Button

    //-----------------------------------------------------------------------------

    public partial class Form1 : Form

    {

    public Form1()

    {

    InitializeComponent();

    }

    private void CriaNovoDataRow()

    {

    // Cria uma nova tabela

    DataTable tabela;

    tabela = CriaTabela();

    // Ap¢s criar a tabela cria um novo DataRow.

    DataRow linha;

    linha = tabela.NewRow();

    MessageBox.Show("A linha foi criada mas ainda nÆo ‚ parte de um DataRowCollection.(Detached) = " + linha.RowState);

    // Nova linha

    tabela.Rows.Add(linha);

    MessageBox.Show("A linha foi adicionada a DataRowCollection, e AcceptChanges nÆo foi invocado. (Added) = " + linha.RowState);

    // Linha inalterada

    tabela.AcceptChanges();

    MessageBox.Show("A linha nÆo foi alterada desde que o £ltimo AcceptChanges foi chamado. (Unchanged) = " + linha.RowState);

    // Linha modificada

    linha.SetModified();

    MessageBox.Show("A linha foi modificada e o m‚todo AcceptChanges nÆo foi chamado.Usamos setModified = " + linha.RowState);

    // Inclui a nova linha na cole‡Æo

    linha["nome"] = "Macoratti";

    // Exibe dados no DataGrid

    dataGridView1.DataSource = tabela;

    }

    private DataTable CriaTabela()

    {

    // Cria uma nova tabela chamada Teste

    DataTable Teste = new DataTable("Teste");

    // Inclui 1 colunas na tabela

    DataColumn nome = new DataColumn();

    nome.DataType = System.Type.GetType("System.String");

    nome.ColumnName = "Nome";

    nome.DefaultValue = "vazio";

    Teste.Columns.Add(nome);

    // Retorna o novo DataTable

    return Teste;

    }

    private void button1_Click(object sender, EventArgs e)

    {

    CriaNovoDataRow();

    }

    }

    //-----------------------------------------------------------------------------

    abraços;

    sexta-feira, 19 de maio de 2006 13:34

Todas as Respostas

  • Caro Pedro,

    como você utilizando esse DataRow?? Associado a qual controle???

    quinta-feira, 18 de maio de 2006 20:34
  • Bom dia Carlos,

    Tenho vários TextBoxs ligados a uma tabela de um DataSet.
    Quando executasse um determinado metodo, gostaria de testar o estado da linha da tabela para saber se estou em um modo de inclusão de uma nova linha ou em modo de edição de uma linha existente, e tambem se esta linha sofreu alguma alteração.

    obrigado

    sexta-feira, 19 de maio de 2006 12:29
  • Ola Pessoal,

    Consegui encontrar no site Marcoratti (http://www.macoratti.net/adn2_rw1.htm) um exemplo que esclareceu as minhas dúvidas.

    Segue abaixo o exemplo feito pelo Marcoratti (fiz a conversão de VB para C#).

    //---------------------------------------------------------------

    Crie um Form com um DataGridView e um Button

    //-----------------------------------------------------------------------------

    public partial class Form1 : Form

    {

    public Form1()

    {

    InitializeComponent();

    }

    private void CriaNovoDataRow()

    {

    // Cria uma nova tabela

    DataTable tabela;

    tabela = CriaTabela();

    // Ap¢s criar a tabela cria um novo DataRow.

    DataRow linha;

    linha = tabela.NewRow();

    MessageBox.Show("A linha foi criada mas ainda nÆo ‚ parte de um DataRowCollection.(Detached) = " + linha.RowState);

    // Nova linha

    tabela.Rows.Add(linha);

    MessageBox.Show("A linha foi adicionada a DataRowCollection, e AcceptChanges nÆo foi invocado. (Added) = " + linha.RowState);

    // Linha inalterada

    tabela.AcceptChanges();

    MessageBox.Show("A linha nÆo foi alterada desde que o £ltimo AcceptChanges foi chamado. (Unchanged) = " + linha.RowState);

    // Linha modificada

    linha.SetModified();

    MessageBox.Show("A linha foi modificada e o m‚todo AcceptChanges nÆo foi chamado.Usamos setModified = " + linha.RowState);

    // Inclui a nova linha na cole‡Æo

    linha["nome"] = "Macoratti";

    // Exibe dados no DataGrid

    dataGridView1.DataSource = tabela;

    }

    private DataTable CriaTabela()

    {

    // Cria uma nova tabela chamada Teste

    DataTable Teste = new DataTable("Teste");

    // Inclui 1 colunas na tabela

    DataColumn nome = new DataColumn();

    nome.DataType = System.Type.GetType("System.String");

    nome.ColumnName = "Nome";

    nome.DefaultValue = "vazio";

    Teste.Columns.Add(nome);

    // Retorna o novo DataTable

    return Teste;

    }

    private void button1_Click(object sender, EventArgs e)

    {

    CriaNovoDataRow();

    }

    }

    //-----------------------------------------------------------------------------

    abraços;

    sexta-feira, 19 de maio de 2006 13:34
  • fecha a thread!

    Não há medalha de ouro sem suor e não há sucesso sem trabalho e dedicação!
    quinta-feira, 15 de julho de 2010 12:30