首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么删除table表中的空行

2012-12-20 
如何删除table表中的空行C#代码中,用datatable读取xml中的数据时,有些空行也被读取进来了,我该咋样判断空

如何删除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;//返回,程序结束
            }

[其他解释]
空行!你根据主键关键字吗,在查出来的结果集进行一次过滤再绑定就是了~~~
[其他解释]
for循环遍历
[其他解释]
引用:
for循环遍历


我是想在先判断所得到的(dr)行是否为空值,若为空,则不添加到table表中.不然的话,会做很多无用功
[其他解释]
引用:
不用循环遍历

C# code?12345            //id是列名            DataView dv = dt.DefaultView;            dv.RowFilter = " id <>''";            dt = dv.ToTable();



表有很多列~~
[其他解释]

其实我是想在以下代码中,判断行非空时才加入table中.可是我这个写法不对
 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);

[其他解释]
引用:
参考
C# code?1234567891011121314151617181920XmlNodeList list = xmldoc.SelectNodes("//new_YF_MARTYR_INFO");//得到根节点下所有名为“new_YF_MARTYR_INFO”子节点。是一个list集合            XmlNode target = null;//目……


呃呃呃,看不明白
[其他解释]
引用:
空行!你根据主键关键字吗,在查出来的结果集进行一次过滤再绑定就是了~~~


因为是做数据接口,再安装主键来筛选的话,貌似灵活性不高啊
[其他解释]
  foreach (XmlNode xn in list)                 {                     dr = dt.NewRow();                     for (int i = 0; i < xn.ChildNodes.Count; i++)                     { 

可以在该位置处判断xn.ChildNodes.Item(i).InnerText是否为空,然后做相应的处理
[其他解释]
查询时添加条件 where 字段不空的
[其他解释]
引用:
foreach (XmlNode xn in list)                 {                     dr = dt.NewRow();                     for (int i = 0; i < xn.ChildNodes.Count; i++)                     { 

可以在该位置处判……

列数量很多,判断之后呢
[其他解释]
判断的是xmlnode 若为非空,则将其加入到datatable中

热点排行