Datatable 中的数据查询(查询不重复记录)

http://blog.csdn.net/lovexiaoxiao/article/details/3734932

//在sql中我们使用distinct查询不重复记录
    //然而我在项目中表关系的设置,就不能使用distinct,必须把数据读出来以后才能进行查询,下面写了一个方法用Dataview实现这个功能
    private void test()
    {
        DataTable dt = new DataTable();
        //定义表结构
        dt.Columns.Add("id", typeof(System.Int32));
        dt.Columns.Add("name", typeof(System.String));
        //添加第一行数据 (并且添加重复数据)
        DataRow drs01 = dt.NewRow();
        drs01[0] = 1;
        drs01[1] = "xiaoyu";
        dt.Rows.Add(drs01);
        //添加第二行数据
        DataRow drs02 = dt.NewRow();
        drs02[0] = 2;
        drs02[1] = "xiaowang";
        dt.Rows.Add(drs02);
        //添加第三行数据
        DataRow drs03 = dt.NewRow();
        drs03[0] = 3;
        drs03[1] = "xiaoyu";
        dt.Rows.Add(drs03);
        //添加第四行数据
        DataRow drs04 = dt.NewRow();
        drs04[0] = 4;
        drs04[1] = "yujinsheng";
        dt.Rows.Add(drs04);
        //将Table填充到DataView并添加新的数据
        DataView dataView = new DataView(dt);
        //没有经过DataView 筛选的name
        Response.Write("没有筛选条件的数据<br/>");
        foreach (DataRow dr in dataView.Table.Rows)
        {
            Response.Write(dr["name"]+"<br/>");
        }
        //经过DataView筛选name 字段不重复的数据
        DataView myDataView = new DataView(dt);
        string[] strComuns ={"name"};
        DataTable nn= myDataView.ToTable(true, strComuns);
        Response.Write("名字不重复的数据<br/>");
        foreach (DataRow dr in nn.Rows)
        {
            Response.Write(dr["name"]+"<br/>");
        }
    }

运行效果:

没有筛选条件的数据
xiaoyu
xiaowang
xiaoyu
yujinsheng
名字不重复的数据
xiaoyu
xiaowang
yujinsheng

posted @ 2017-02-09 16:24  清空回声  阅读(1999)  评论(0编辑  收藏  举报