当前位置:编程学习 > C#/ASP.NET >>

得到一个dataset后需要筛选某一字段列的数据怎么办?

.net的程序,从数据库读出数据后形成一个dataset,dataset中有一列字段是"车主电话",车主电话有乱填写的格式不规范的,如何剔除不符合规范的dataset呢? 我在网上搜索了一些匹配电话号码正则表达式的规则来筛选,但是没有起效果,也不知道写对没有,也有说用DataView的RowFilter来筛选数据,可是也没成功,希望知道的提点一下!纠结好几天了。

主要是筛选出填写正确的电话号码后导出到excel中显示的,截取部分代码如下:

  #region 导出数据准备
    public static string ExportTable(DataSet ds)
    {
        StringBuilder sb = new StringBuilder();
        int count = 0;
 //我想的是这里开始筛选数据
        DataView dv= new DataView();
        dv.Table = ds.Tables[0];

        dv.RowFilter = "车主电话=null";

        DataTable dt = dv.Table;
        //foreach (DataTable tb in ds.Tables)
        //{
            //data += tb.TableName + "\n"; 
            sb.AppendLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">");
            sb.AppendLine("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">");
            //写出列名 
            sb.AppendLine("<tr style=\"font-weight: bold; white-space: nowrap;\">");
            foreach (DataColumn column in dt.Columns)
            {
                sb.AppendLine("<td>" + column.ColumnName + "</td>");
            }
            sb.AppendLine("</tr>");

            //写出数据 []
            foreach (DataRow row in dt.Rows)
            {
                sb.Append("<tr>");
                foreach (DataColumn column in dt.Columns)
                {
                   
                    sb.Append("<td>" + row[column].ToString() + "</td>");
                }
                sb.AppendLine("</tr>");
                count++;
            }
            sb.AppendLine("</table>");
       // }

        return sb.ToString();
    }
--------------------编程问答--------------------             foreach (DataRow row in dt.Rows)
            {
                if (!Regex.IsMatch(row[某行].ToString(), 正则)) continue;
                sb.Append("<tr>");
                foreach (DataColumn column in dt.Columns)
                {
                   
                    sb.Append("<td>" + row[column].ToString() + "</td>");
                }
                sb.AppendLine("</tr>");
                count++;
            }
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,