ADO.NET_第五篇_DataTable_01

本例子演示如何使用DataTable

例一

    string connStr = "data source=ORC10; uid=scott; pwd=tiger; unicode=true";
    string sqlStr = "SELECT * FROM EMP";
    System.Data.OracleClient.OracleConnection conn = new System.Data.OracleClient.OracleConnection(connStr);
    conn.Open();
    System.Data.OracleClient.OracleCommand cmd = new System.Data.OracleClient.OracleCommand(sqlStr, conn);        
    System.Data.OracleClient.OracleDataAdapter da = new System.Data.OracleClient.OracleDataAdapter(cmd);
    System.Data.DataTable dt = new System.Data.DataTable();
    da.Fill(dt);
    if (dt.Rows.Count > 0)
    {
        foreach (DataRow dr in dt.Rows)
        {
            Response.Write(dr[0].ToString() + " ");
        }
    }
    else
    {
        Response.Write("没有找到相应的匹配!");
    }
    da.Dispose();
    cmd.Dispose();
    conn.Close();
    conn.Dispose();

说明

1) 简单来说,从数据库中获得数据,既可以放到OracleDataReader,有可以放到DataTable或是DataSet,但是如何选择,取决于你是否处理你获得的数据。

例二

    string connStr = "Data Source=ora11g;uid=scott;pwd=tiger;unicode=true";
    string sqlStr = "select * from emp";
    OracleConnection conn=new OracleConnection(connStr);
    OracleDataAdapter da = new OracleDataAdapter(sqlStr, conn);
    DataTable dt = new DataTable();
    da.Fill(dt);
    foreach (DataRow dr in dt.Rows)
    {
        Response.Write(dr[0].ToString() + ", " + dr[1].ToString() + ", " + dr[3].ToString());
        Response.Write(dr["empno"].ToString() + ", " + dr["ename"].ToString() + ", " + dr["mgr"].ToString());
    }
    conn.Close();

说明:

1) 在DataRow中,既可以用索引,也可以用字段名。在实际项目中,为了容易维护,我们通常都写字段名;

2) 本例直接使用了OracleDataAdapter,而没有使用OracleCommand对象。

例三

    string connStr = "Data Source=ora11g;uid=scott;pwd=tiger;unicode=true";
    string sqlStr = "SELECT * FROM EMP";
    using (OracleConnection conn = new OracleConnection(connStr))
    {
        OracleCommand cmd = new OracleCommand(sqlStr, conn);
        OracleDataAdapter da = new OracleDataAdapter(cmd);
        DataTable dt = new DataTable();
        da.Fill(dt);
        foreach (DataRow dr in dt.Rows)
        {
            Response.Write(dr["empno"].ToString() + ", " + dr["ename"].ToString() + ", " + dr["mgr"].ToString());
        }
        conn.Close();

说明:

1) 本例使用OracleCommand对象。

例四

    string connStr = "Data Source=ora11g;uid=scott;pwd=tiger;unicode=true";
    string sqlStr = "SELECT * FROM EMP";
    using (OracleDataAdapter da = new OracleDataAdapter(sqlStr, connStr))
    {
        DataTable dt = new DataTable();
        da.Fill(dt);
        foreach (DataRow dr in dt.Rows)
        {
            Response.Write(dr["empno"].ToString() + ", " + dr["ename"].ToString() + ", " + dr["mgr"].ToString());
        }
        foreach (DataRow dr in dt.Rows)
        {
            Response.Write(dr["empno"].ToString() + ", " + dr["ename"].ToString() + ", " + dr["mgr"].ToString());
        }
    }

说明:

1) DataTable与OracleDataReader不同,可以任意次输出,而DataReader是只读、只向前的,所以只能输出一次。

2) 本例使用了using关键字,可以自动调用Dispose()方法,就不用你再显示调用了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值