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

来源:互联网 发布:云计算的应用有哪些 编辑:程序博客网 时间:2024/05/13 09:11

 //在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

原创粉丝点击