Solución:
Si usa un mecanografiado DataSet
, Es decir, declarado en tiempo de diseño, el “método linq Contiene” toma un tipo DataRow
. El valor por defecto IEqualityComparer
comparará todos los valores en el DataRow
. (Lo que normalmente es inútil, ya que debería 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 forma ú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;
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)