ADO.NET_第五篇_DataTable_05Select

+++ 本例演示如何使用DataTable.Select()

protected void Page_Load(object sender, EventArgs e)
{
    string connStr = "data source=ora11g; uid=scott; pwd=tiger; unicode=true";
    string sqlStr = "SELECT * FROM EMP";
    OracleDataAdapter da = new OracleDataAdapter(sqlStr, connStr);
    DataTable dt = new DataTable();
    da.Fill(dt);
    #region 无参的Select
    DataRow[] rows = dt.Select();
    for (int i = 0; i < rows.Length; i++)
    {
        Response.Write(rows[i]["empno"] + " " + rows[i]["ename"]);
    }
    #endregion
    #region 带一个参数的Select
    string exp1 = "sal > 2000";
    DataRow[] resRows1 = dt.Select(exp1);
    for (int i = 0; i < resRows1.Length; i++)
    {
        Response.Write(resRows1[i][0]);
    }
    #endregion
    #region 带两个参数的Select
    string exp2 = "sal > 2000";
    string sortOrder = "empno ASC";
    DataRow[] resRows2 = dt.Select(exp2, sortOrder);
    for (int i = 0; i < resRows2.Length; i++)
    {
        Response.Write(resRows2[i][0]);
    }
    #endregion
    Response.Write("</br>");
    #region 带三个参数的Select
    DataTable myempDt = new DataTable("myemp");
    myempDt.Columns.Add("empno", typeof(int));
    myempDt.Columns.Add("ename", typeof(string));
    myempDt.Columns["empno"].Unique = true;
    myempDt.PrimaryKey = new DataColumn[] { myempDt.Columns["empno"] };
    for (int id = 1; id <= 10; id++)
    {
        myempDt.Rows.Add(new object[] { id, string.Format("myemp_{0}", id) });
    }
    myempDt.AcceptChanges();
    for (int id = 11; id <= 20; id++)
    {
        myempDt.Rows.Add(new object[] { id, string.Format("myemp_{0}", id) });
    }
    string expression = "empno > 10";
    string sort = "ename ASC";
    DataRow[] foundRows = myempDt.Select(expression, sort, DataViewRowState.Added);
    PrintRows(foundRows, "过滤的行。");
    foundRows = myempDt.Select();
    PrintRows(foundRows, "所有行。");
    #endregion
}
private void PrintRows(DataRow[] rows, string label)
{
    Response.Write(label);
    if (rows.Length <= 0)
    {
        Response.Write("没有此行。");
        return;
    }
    foreach (DataRow row in rows)
    {
        foreach (DataColumn column in row.Table.Columns)
        {
            Response.Write(row[column] + " ");
        }
    }
}

+++ 说明
1) 该方法将返回获取DataRow对象的数组,这个对象数组相当于一个二维数组;
2) 该方法有四个重载的函数:
Select() 获取所有 DataRow 对象的数组。 
Select(String) 按照主键顺序(如果没有主键,则按照添加顺序)获取与筛选条件相匹配的所有 DataRow 对象的数组。 
Select(String, String) 获取按照指定的排序顺序且与筛选条件相匹配的所有 DataRow 对象的数组。 
Select(String, String, DataViewRowState) 获取与排序顺序中的筛选器以及指定的状态相匹配的所有 DataRow 对象的数组。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值