• Ado.Net,关于DataSet和DataTable


    DataSetDataTable的 区别与联系 

    1、简要说明二者关系

           在我们编写代码的时候从数据库里取出数据,填充到dataset里,再根据表的名字,实例化到 DataTable 中。

    ●注意如下 Ado.Net 关系: 

            Connection_____Command____DataAdapter____Dataset  _____Datareader

    ● DataSet 是放在内存中的,对DataSet中数据的修改并不直接反应到数据库,要通过 DataAdapter 的 Update 方法更新回数据库

    ● DataSet相当你用的数据库; DataTable相当于你的表。一个 DataSet 可以包含多个 DataTable

    DataSet 由表、关系和约束的集合组成。在 ADO.NET 中,DataTable对象用于表示 DataSet 中的表。DataTable 表示一个内存内关系数据的表;

    DataTableDataRow的 区别与联系 

    1、简要说明二者关系(foreach (DataRow dr in dt_sn.Rows))

    DataRow 和 DataColumn 对象是 DataTable 的主要组件。使用 DataRow 对象及其属性和方法检索、评估、插入、删除和更新 DataTable 中的值。DataRowCollection 表示 DataTable 中的实际 DataRow 对象,DataColumnCollection 中包含用于描述DataTable 的架构的 DataColumn 对象。使用重载的 Item 属性返回或设置 DataColumn 的值。

    使用 HasVersion 和 IsNull 属性确定特定行值的状态,使用 RowState 属性确定行相对于它的父级 DataTable 的状态。

    namespace ProjectWeb
    {
        public partial class DataSetTable : System.Web.UI.Page
        {
            //创建字典,好处就是使用ContainsKey功能
            private Dictionary<string, string> dicObject = new Dictionary<string, string>();
    
            protected void Page_Load(object sender, EventArgs e)
            {
                //把DataTable数据添加到Dictionary字典
                DataTable dt_sn = GetData().Tables[0];
                this.dicObject.Clear();
                foreach (DataRow dr in dt_sn.Rows)
                    this.dicObject.Add(dr["id"].ToString(), dr["name"].ToString());
    
                //Dictionary字典的数据添加到页面DropDownList1
                this.DropDownList1.Items.Clear();
                this.DropDownList1.Items.Add(new ListItem("第一张表"," "));
                foreach (KeyValuePair<string, string> kv in dicObject)
                    this.DropDownList1.Items.Add(new ListItem(kv.Value, kv.Key));
    
                //第二张表数据
                DataTable dt_te = GetData().Tables[1];
                this.DropDownList2.Items.Clear();
                this.DropDownList2.Items.Add(new ListItem("第二张表", " "));
                foreach (DataRow dr in dt_te.Rows)
                    this.DropDownList2.Items.Add(new ListItem(dr["name"].ToString(), dr["id"].ToString()));
            }
            #region 返回数据集
            private DataSet GetData()
            {
                //创建第一张表
                DataTable dt_sn = new DataTable();
                //添加列
                dt_sn.Columns.Add("id");
                dt_sn.Columns.Add("name");
                //添加行
                DataRow dr_sn = dt_sn.NewRow();
                dr_sn["id"] = "1";
                dr_sn["name"] = "杨秀徐";
                dt_sn.Rows.Add(dr_sn);
                //表名称
                dt_sn.TableName = "SN";
    
                //创建第二张表
                DataTable dt_te = new DataTable();
                //添加列
                dt_te.Columns.Add("id");
                dt_te.Columns.Add("name");
                //添加行
                DataRow dr_te = dt_te.NewRow();
                dr_te["id"] = "2";
                dr_te["name"] = "杨四节";
                dt_te.Rows.Add(dr_te);
                //表名称
                dt_te.TableName = "Te";
    
                DataSet ds = new DataSet();
                //把表DataTable添加到数据集DataSet
                ds.Tables.Add(dt_sn);
                ds.Tables.Add(dt_te);
    
                return ds;
            }
            #endregion
        }
    }
    

    点击下载实例

  • 相关阅读:
    Audit(二)--清理Audit数据
    开启和关闭oracle数据库中的审计功能
    ORACLE AUDIT
    expdp导出卡住问题诊断
    Oracle 12c 新特性 --- 新增对数据泵操作的审计跟踪
    针对Oracle的审计方案
    深入理解Oracle的imp/exp 和各版本之间的规则
    Oracle Audit 功能的使用和说明
    Oracle的存储的三大物理文件
    操作系统核心原理-5.内存管理(下):段式内存管理
  • 原文地址:https://www.cnblogs.com/sntetwt/p/4554551.html
Copyright © 2020-2023  润新知