Ado.Net,关于DataSet和DataTable
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 的状态。
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 } }