一.知识点
1、概述:DataTable是一个临时保存数据的网格虚拟表(表示内存中数据的一个表),是ADO.Net库中的核心对象。
2、DataTable类将关系数据表示为表格形式,ADO.Net提供了一个DataTable类来独立创建和使用数据表。
3、在创建DataTable之前,必须包含using System.Data名称空间。
4、DataTable的常用属性
①Columns:它用于获取属于此表的列的集合。
②DataSet:它用于获取此表所属的DataSet。
③Rows:它用于获取属于此表的行的集合。
④PrimaryKey:它用于获取或设置一个用作数据表主键的列数组。
⑤TableName:它用于获取或设置DataTable的名称。
5、主要用法:
①创建和使用DataTable
(1)DataTable Table = new DataTable(); (声明实例化数据表)
(2)sqlDataAdapter.Fill(bedTable); (sql数据适配器读取数据,并填充数据表)
(3)this.DataGridView.DataSource =Table; (将数据网格视图的数据源设为数据表)
(4)应用数据表里的各个属性用于绑定数据网格视图的列。
②DataTable中的数据处理
(1)向数据表中插入数据,创建新行并将它们添加到表中。
(2)查看数据表中的数据。
(3)更新或修改数据表中的数据。
(4)删除DataGridView中相关行的数据并同时删除与之绑定的数据表中的数据。
(5)数据表的复制。
二.思维导图
三.代码
namespace ProjectWeb
{
public partial class DataSetTable : System.Web.UI.Page
{
private Dictionary<string, string> dicObject = new Dictionary<string, string>();
protected void Page_Load(object sender, EventArgs e)
{
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());
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()));
}
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();
ds.Tables.Add(dt_sn);
ds.Tables.Add(dt_te);
return ds;
}