Error estraño al borrar de un DataTable

21/11/2005 - 20:12 por Manue | Informe spam
Hola,
estoy con el Visual Studio 2005. Tengo un DataTable cargado con un Select de
una base de datos Access.
Todo el trabajo que realizo con la tabla me funciona bien, pero hay un punto
donde me da error:
Al intentar borrar, el codigo es el siguiente:

public void borrarDatosGrid()
{

foreach (DataRow fila in dt.Rows)
{
fila.Delete();
}

da.Update(dt); //Aqui es donde salta la excepcion.
dt.AcceptChanges();
}



Creo que el error no se encuentra aqui, ya que si borro directamente no
tengo ningun problema, todo va bien.
El problema se encuentra cuando ingreso datos en el DataTable y a
continuacion borro todo el contenido del DataTable, entonces me salta la
excepcion:

System.Data.DBConcurrencyException was unhandled
Message="Concurrency violation: the DeleteCommand affected 0 of the
expected 1 records."
Source="System.Data"
RowCount=1
.



El codigo de cuando ingreso datos es el siguiente(aqui supongo es donde esta
el problema, ya que sin hacer esto, funciona):

public void guardarCambios()
{
try
{
if (dt.GetChanges() != null)
{
if (MessageBox.Show(this,"¿Desea guardar los
cambios?","Guardar cambios",MessageBoxButtons.YesNo,MessageBoxIcon.Question)
== DialogResult.Yes)
{
da.Update(dt);
}
else
{
dt.RejectChanges();
dgvConta.Update();
}

dt.AcceptChanges();
}
}
catch(Exception e)
{
MessageBox.Show(e.ToString());
}
}




Espero que alguien me ayude, porque yo no veo el error.
Gracias
 

Leer las respuestas

#1 Angel Neri Cervín
23/11/2005 - 15:16 | Informe spam
Y si en vez de borrar una a una las filas probás con

dt.Rows.Clear

ó

dt.Clear



Neri

"Manue" escribió en el mensaje
news:
Hola,
estoy con el Visual Studio 2005. Tengo un DataTable cargado con un Select
de
una base de datos Access.
Todo el trabajo que realizo con la tabla me funciona bien, pero hay un
punto
donde me da error:
Al intentar borrar, el codigo es el siguiente:

public void borrarDatosGrid()
{

foreach (DataRow fila in dt.Rows)
{
fila.Delete();
}

da.Update(dt); //Aqui es donde salta la excepcion.
dt.AcceptChanges();
}



Creo que el error no se encuentra aqui, ya que si borro directamente no
tengo ningun problema, todo va bien.
El problema se encuentra cuando ingreso datos en el DataTable y a
continuacion borro todo el contenido del DataTable, entonces me salta la
excepcion:

System.Data.DBConcurrencyException was unhandled
Message="Concurrency violation: the DeleteCommand affected 0 of the
expected 1 records."
Source="System.Data"
RowCount=1
.



El codigo de cuando ingreso datos es el siguiente(aqui supongo es donde
esta
el problema, ya que sin hacer esto, funciona):

public void guardarCambios()
{
try
{
if (dt.GetChanges() != null)
{
if (MessageBox.Show(this,"¿Desea guardar los
cambios?","Guardar
cambios",MessageBoxButtons.YesNo,MessageBoxIcon.Question)
== DialogResult.Yes)
{
da.Update(dt);
}
else
{
dt.RejectChanges();
dgvConta.Update();
}

dt.AcceptChanges();
}
}
catch(Exception e)
{
MessageBox.Show(e.ToString());
}
}




Espero que alguien me ayude, porque yo no veo el error.
Gracias

Preguntas similares