¿Comprobar si existe una fila en DataTable?

¿Comprobar si existe una fila en DataTable?

Si usa un DataSet escrito , Es decir. declarado en tiempo de diseño, el "método linq Contiene" toma un DataRow escrito . El IEqualityComparer predeterminado comparará todos los valores en el DataRow . (Lo que normalmente es inútil, ya que debe tener una clave definida).

DataSet1 ds = new DataSet1();
DataSet1.DataTable1Row row = ds.DataTable1.AddDataTable1Row(bla, bla);
bool exists = ds.DataTable1.Contains(row);

Puede usar LINQ para verificar si la fila está presente en la tabla de datos. Siga esta solución y reemplace "id" con la clave principal de su fila, mediante la cual puede identificar de manera única una fila en una tabla.

DataRow dr = null; // assign your DR here
DataTable dt = new DataTable(); // assign Datatable instance here.
var k = (from r in dt.Rows.OfType<DataRow>()  where r["id"].ToString() == dr["id"].ToString() select r).FirstOrDefault();
if(k != null)
{  // Row is present }

si quieres comprobar todos los cells en un DataRow , puedes probar esta función:

bool ContainDataRowInDataTable(DataTable T,DataRow R)
{
    foreach (DataRow item in T.Rows)
    {
        if (Enumerable.SequenceEqual(item.ItemArray, R.ItemArray))
            return true;
    }
    return false;
}