DataTable dt = new DataTable();
dt.Columns.Add("SortType");
dt.Columns.Add("WMID");
dt.Columns.Add("IsSave");
dt.Columns.Add("GoodID");
DataRow drn;
drn = dt.NewRow();
drn.ItemArray = new object[] { "sort", "0101000201", 1, "01010001" };
dt.Rows.Add(drn);
drn = dt.NewRow();
drn.ItemArray = new object[] { "sort", "0101000301", 1, "01010001" };
dt.Rows.Add(drn);
drn = dt.NewRow();
drn.ItemArray = new object[] { "sort", "0101000401", 1, "01010001" };
dt.Rows.Add(drn);
drn = dt.NewRow();
drn.ItemArray = new object[] { "sort", "0101000501", 1, "01010001" };
dt.Rows.Add(drn);
错误做法:
for (int i = 0;i<dt.Rows.Count; i++)
{
if (dt.Rows[i]["GoodID"].ToString().Trim() == "01010001")
{
dt.Rows.RemoveAt(i);
}
}
正确做法1:
for (int i = dt.Rows.Count-1; i >=0; i--)
{
if (dt.Rows[i]["GoodID"].ToString().Trim() == "01010001")
{
dt.Rows.RemoveAt(i);
}
}
正确做法2:
DataTable dttest = new DataTable();
dttest .Columns.Add("SortType");
dttest .Columns.Add("WMID");
dttest .Columns.Add("IsSave");
dttest .Columns.Add("GoodID");
DataRow drntest;
for (int i =0;i< dt.Rows.Count; i++)
{
if (dt.Rows[i]["GoodID"].ToString().Trim() == "01010001")
{
}
else
{
drntest= dttest .NewRow();
drntest.ItemArray = new object[] { "sort", "0101000201", 1, "01010001" };
dttest .Rows.Add(drntest);
}
}
dttest 里为需要的数据
本文介绍了一种使用DataTable进行数据处理的方法,特别关注了如何避免在删除行时引发的问题,并提供了两种正确的实现方式。
9021

被折叠的 条评论
为什么被折叠?



