如何在 Datatable asp.net c# 中查找和删除 DataRow?
How to Find and delete DataRow in Datatable asp.net c#?
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"] 不同table。
dataTable 是 dataSet1.Tables["AnyTable"]
的克隆
此代码无效..如果有人知道如何 "find and delete row in datatable" 告诉我。提前致谢
请试试这个。
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();
您可以使用 indexOf
而不是将所有记录返回到 delete
数据。您已经知道要删除哪一行。
我觉得你是直接从pk中删除了一条记录,这段代码性能更高
You must be set PK on Table
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();
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"] 不同table。 dataTable 是 dataSet1.Tables["AnyTable"]
的克隆此代码无效..如果有人知道如何 "find and delete row in datatable" 告诉我。提前致谢
请试试这个。
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();
您可以使用 indexOf
而不是将所有记录返回到 delete
数据。您已经知道要删除哪一行。
我觉得你是直接从pk中删除了一条记录,这段代码性能更高
You must be set PK on Table
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();