I have a data table and I want to delete a row here is my code it\'s throwing me an exception
foreach (DataRow row in dt1.Rows)
{
if ((row[\"Name\"] == \
Instead of using dt1.Rows
, use dt1.Select()
The goal here is not to use the collection itself, but rather an array of row that is not the Rows
collection
This is how I did it when I ran into this issue.
Dim index As Integer = 0
Dim count As Integer = resultsDT.Rows.Count - 1
For i As Integer = 0 To count
If resultsDT.Rows(index).Item("something") = "something" Then
resultsDT.Rows(index).Delete()
resultsDT.AcceptChanges()
index = index - 1
End If
index = index + 1
i = i + 1
Next
Create a list of rows to delete while iterating over DataTable.Rows
, then delete them all separately.
Non-LINQ solution:
List<DataRow> rowsToDelete = new List<DataRow>();
foreach (DataRow row in dt1.Rows)
{
if ((row["Name"] == "Select a Lookbook") ||
(row["Name"] == "Create a new Lookbook"))
{
rowsToDelete.Add(row);
}
}
foreach (DataRow row in rowsToDelete)
{
row.Delete();
}
dt1.AcceptChanges();
LINQ solution:
List<DataRow> rowsToDelete = dt1.Rows.AsEnumerable()
.Where(row => (row["Name"] == "Select a Lookbook") ||
(row["Name"] == "Create a new Lookbook"))
.Tolist();
foreach (DataRow row in rowsToDelete)
{
row.Delete();
}
dt1.AcceptChanges();