Ado.Net,关于DataSet和DataTable

Ado.Net,关于DataSet和DataTable

 https://www.cnblogs.com/sntetwt/p/4554551.html

DataSet和DataTable的 区别与联系 

1、简要说明二者关系

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

●注意如下 Ado.Net 关系: 

        Connection_____Command____DataAdapter____Dataset  _____Datareader

 

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

 

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

 

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

 

DataTable和DataRow的 区别与联系 

 

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 的状态。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
namespace ProjectWeb
{
    public partial class DataSetTable : System.Web.UI.Page
    {
        //创建字典,好处就是使用ContainsKey功能
        private Dictionary<stringstring> dicObject = new Dictionary<stringstring>();
 
        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<stringstring> 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
    }
}

 

点击下载实例

 

"唯有高屋建瓴,方可水到渠成"
分类: ado.net,asp.net
 
好文要顶 关注我 收藏该文  
0
0
 
 
 
 
posted @ 2015-06-05 14:26 microsoft-zh.cn 阅读(731) 评论(0) 编辑 收藏
 

 

posted @ 2018-03-07 13:58  sky20080101  阅读(110)  评论(0)    收藏  举报