DataTable.select的简单使用

有些时候,我们会把从数据库中取出的信息存到DataTable中。然后是绑定控件也好,还是显示信息也好。但是有些时候,我们会遇到这样情况。就是在我们将想要的信息放到Datatable中之后,有可能会出现一些二次查询或是从这个table中根据一些条件取出一些信息。

 

当然我们可以再次根据条件去读一次数据库或是XML文件,这样做有时候感觉是在浪费资源,其实在Datatable中有一个select可以进行二次选择的,试一下,感觉不错,现在将程序放上来。仅供参好。例子很简单。

 

using System;
using System.Data;
using System.Web.UI;

public partial class test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            DataTable dt = getDt();
            this.GridView1.DataSource = dt;
            this.GridView1.DataBind();
        }
    }


    protected void Button1_Click1(object sender, EventArgs e)//筛选
    {
        this.GridView1.Dispose();
        DataTable dt = getDt();
        DataRow[] dr = dt.Select("Sex like '%男%'");

        for (int i = 0; i < dr.Length; i++)
        {
            Response.Write("姓名:" + dr[i]["Name"].ToString() + "  " + "性别:" + dr[i]["Sex"].ToString() + "<br/>");

        }
    }


    protected void Button2_Click(object sender, EventArgs e)//排序方法1
    {
        this.GridView1.Dispose();
        DataTable dt = getDt();
        DataRow[] dr = dt.Select("", "Name desc");

        for (int i = 0; i < dr.Length; i++)
        {
            Response.Write("姓名:" + dr[i]["Name"].ToString() + "  " + "性别:" + dr[i]["Sex"].ToString() + "<br/>");

        }
    }

    protected void Button3_Click(object sender, EventArgs e)//排序方法2
    {
        this.GridView1.Dispose();
        DataTable dt = getDt();
        DataView dv = dt.DefaultView;
        dv.Sort = "Sex asc,Name desc";
        DataTable dt2 = dv.ToTable();

        for (int i = 0; i < dt2.Rows.Count; i++)
        {
            Response.Write("姓名:" + dt2.Rows[i]["Name"].ToString() + "  " + "性别:" + dt2.Rows[i]["Sex"].ToString() + "<br/>");

        }
    }


    public DataTable getDt()
    {
        DataTable dt = new DataTable();
        DataColumn dc = new DataColumn("Name", System.Type.GetType("System.String"));
        dt.Columns.Add(dc);
        dc = new DataColumn("Sex", System.Type.GetType("System.String"));
        dt.Columns.Add(dc);

        for (int i = 0; i < 10; i++)
        {
            DataRow dr = dt.NewRow();
            dr["Name"] = "小明" + i.ToString();
            if (i > 0 && i % 2 == 0)
            {
                dr["Sex"] = "男";
            }
            else
            {
                dr["Sex"] = "女";
            }

            dt.Rows.Add(dr);

        }
        return dt;
    }
}

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值