private DataTable InsertABlankRow(DataTable dt)
{
int n = dt.Rows.Count;
DataTable dtnew = new DataTable();
if (dt.Columns.Contains("colname"))
{
var countRows = dt.Select("colname ='xyz'").Length;
if (countRows > 1)
{
foreach (DataRow drow in dt.Rows)
{
if (drow["colname"].ToString() == "xyz")
{
int index = dt.Rows.IndexOf(drow);
dt.Rows.InsertAt(dt.NewRow(), index + 1);
dt.AcceptChanges();
}
}
}
}
}
修改後的代碼:插入多個或單個blankrows在一個DataTable
private DataTable Add_a_Row(DataTable dtnew)
{
DataTable dt = new DataTable();
dt= dtnew.Clone();
foreach (DataRow dr in dtnew.Rows)
{
dt.ImportRow(dr);
if(dr["colname"].ToString()=="xyz")
{
dt.Rows.Add(dt.NewRow());
}
}
return dt;
}
大家好, 我想插入在其中不斷滿足條件多處空白行。當條件滿足時,第一次添加一個新的空行,但第二個則拋出異常,集合改變。有沒有辦法以更好的方式做到這一點。謝謝...
我認爲在使用InsertAt方法在特定索引處插入行後,應該調用AcceptChanges方法。 dt.AcceptChanges() –
我這樣做,可能不會顯示在代碼中,但即使添加後仍會引發錯誤。 – Agasthya
您無法修改您正在枚舉的集合。該foreach被搞砸了,因爲它開始的原始收藏現在已經改變。 –