datatable 根据条件删除多行
求助:datatable 根据条件删除多行
有datatable如下
addr,name
广州,张三
长沙,李四
广州,王五
武汉,赵六
求助:
从外部传入一个 int 值 lb
当lb=1时,删除addr为广州的所有行,返回新的datatable
当lb=2时,删除addr为长沙的所有行,返回新的datatable
当lb=3时,返回原datatable
------解决方案--------------------
------解决方案--------------------
有datatable如下
addr,name
广州,张三
长沙,李四
广州,王五
武汉,赵六
求助:
从外部传入一个 int 值 lb
当lb=1时,删除addr为广州的所有行,返回新的datatable
当lb=2时,删除addr为长沙的所有行,返回新的datatable
当lb=3时,返回原datatable
------解决方案--------------------
DataTable getTable(DataTable dt,int type)
{
if (type == 3) return dt;
if (type == 1)
{
DataTable tmp = dt.Clone();
DataRow[] drs = dt.Select("addr<>'广州'");
foreach (DataRow dr in drs)
{
tmp.Rows.Add(dr.ItemArray);
}
return tmp;
}
if (type == 2)
{
DataTable tmp = dt.Clone();
DataRow[] drs = dt.Select("addr<>'长沙'");
foreach (DataRow dr in drs)
{
tmp.Rows.Add(dr.ItemArray);
}
return tmp;
}
return null;
}
------解决方案--------------------
public DataTable GetNewDatatable(DataTable dt)
{
DataTable dtNew = new DataTable();
dtNew.Columns.Add("addr");
dtNew.Columns.Add("name");
if(ib==1)
{
for(int i=0;i<dt.Rows.Count;i++)
{
if(dt.Rows[i]["addr"].ToString()!="广州")
{
dtNew.Rows.Add(dt.Rows[i]);
}
}
}
else if(lb==2)
{
//.....
}
else if(lb==3)
{
dtNew = dt;
}
return dtNew;
}