Usuário com melhor resposta
Estado do DataRow

Pergunta
-
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 linhatabela.Rows.Add(linha);
MessageBox.Show("A linha foi adicionada a DataRowCollection, e AcceptChanges nÆo foi invocado. (Added) = " + linha.RowState); // Linha inalteradatabela.AcceptChanges();
MessageBox.Show("A linha nÆo foi alterada desde que o £ltimo AcceptChanges foi chamado. (Unchanged) = " + linha.RowState); // Linha modificadalinha.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‡Æolinha[
"nome"] = "Macoratti"; // Exibe dados no DataGriddataGridView1.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;
- Sugerido como Resposta Levi DomingosModerator quinta-feira, 15 de julho de 2010 13:10
- Marcado como Resposta Eder CostaModerator sexta-feira, 3 de dezembro de 2010 18:23
Todas as Respostas
-
-
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 -
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 linhatabela.Rows.Add(linha);
MessageBox.Show("A linha foi adicionada a DataRowCollection, e AcceptChanges nÆo foi invocado. (Added) = " + linha.RowState); // Linha inalteradatabela.AcceptChanges();
MessageBox.Show("A linha nÆo foi alterada desde que o £ltimo AcceptChanges foi chamado. (Unchanged) = " + linha.RowState); // Linha modificadalinha.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‡Æolinha[
"nome"] = "Macoratti"; // Exibe dados no DataGriddataGridView1.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;
- Sugerido como Resposta Levi DomingosModerator quinta-feira, 15 de julho de 2010 13:10
- Marcado como Resposta Eder CostaModerator sexta-feira, 3 de dezembro de 2010 18:23
-