http://www.cnblogs.com/liuning8023/

2011年8月8日我搬到cnblog, 搬家的好日子. http://www.cnblogs.com/liuning8023/

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()方法,就不用你再显示调用了。

阅读更多
个人分类: ADO.NET
想对作者说点什么? 我来说一句

ADO.NET复习题目100道+答案

2017年10月10日 68KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭