DataTable.select的简单使用

来源:互联网 发布:sql预编译是什么 编辑:程序博客网 时间:2024/06/04 19:48

有些时候,我们会把从数据库中取出的信息存到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;    }}

 
原创粉丝点击