如何删除table表中的空行
C#代码中,用datatable读取xml中的数据时,有些空行也被读取进来了,我该咋样判断空行并移除
[最优解释]
不用循环遍历
//id是列名
DataView dv = dt.DefaultView;
dv.RowFilter = " id <>''";
dt = dv.ToTable();
XmlNodeList list = xmldoc.SelectNodes("//new_YF_MARTYR_INFO");//得到根节点下所有名为“new_YF_MARTYR_INFO”子节点。是一个list集合
XmlNode target = null;//目标节点
bool find = false;//标记有没有找到目标节点
DataTable dt = new DataTable();
DataRow dr;
foreach (XmlNode node in list)
{
XmlElement xmlEle = (XmlElement)node;//强制装换类型。XmlElement是xmlNode的子类,可以读取Attributes属性
if (xmlEle.Attributes["NO"].Value == targetValue)//如果等于目标值
{
target = node.Clone();//得到目标节点
find = true;//标记找到
break;//退出遍历
}
}
if (!find)//没有找到
{
Console.WriteLine("can not find");
return;//返回,程序结束
}
XmlNodeList list = xmldoc.SelectNodes("//new_YF_MARTYR_INFO");
DataTable dt = new DataTable();
DataRow dr;
foreach (XmlNode xn in list)
{
dr = dt.NewRow();
for (int i = 0; i < xn.ChildNodes.Count; i++)
{
if (!dt.Columns.Contains(xn.ChildNodes.Item(i).Name))
{
dt.Columns.Add(xn.ChildNodes.Item(i).Name);
}
dr[xn.ChildNodes.Item(i).Name] = xn.ChildNodes.Item(i).InnerText;
}
//其实我是想在这步的时候,判断行非空时才加入table中.可是我这个写法不对
if (dr.ItemArray.Count() > 0)
{
dt.Rows.Add(dr);
}
}
ds.Tables.Add(dt);