如何在Datatable asp.net c#中查找和删除DataRow?

时间:2018-02-21 05:15:12

标签: c# asp.net datatable datarow

string s = "primaryKeyValue";
DataRow foundRow = dataSet1.Tables["AnyTable"].Rows.Find(s);

if (foundRow != null) 
{
    foreach(DataRow r in dataTable)
    {
        if(r == foundRow)
           r.Delete();
    }
}
dataTable.AcceptChanges();

dataTable和dataSet1.Tables [“AnyTable”]是不同的表。 dataTable是dataSet1.Tables [“AnyTable”]

的克隆

此代码无效。如果有人知道如何“在datatable中查找和删除行”,请告诉我。提前致谢

2 个答案:

答案 0 :(得分:1)

您可以使用indexOf代替将所有记录返回delete数据。您已经知道要删除哪一行。

我认为您已直接从Pk删除了一条记录,此代码效率更高。

  

您必须在表

上设置PK
ds.Tables["AnyTable"].PrimaryKey = new[] { dt.Columns["YourPKcolumn"] };
        DataRow dr =  ds.Tables["AnyTable"].Rows.Find(PrimaryKeyValue); 
        int idx =  dt.Rows.IndexOf(dr);
        dt.Rows.RemoveAt(idx);
        ds.Tables["AnyTable"].AcceptChanges();

答案 1 :(得分:0)

请试试这个。

var datatable = new DataTable(); // take your datatable
string s = "primaryKeyValue";
DataRow[] row = datatable.Select("name='" + s + "'");
for (int i = row.Length - 1; i >= 0; i--)
{
    datatable.Rows.Remove(row[i]);
}
datatable.AcceptChanges();