一起学~ASP.NET应用:DataSet 和XML(1)
数据集概述
概述:数据集即是内存当中的数据库。把实际数据库当中的一部分数据读到内存当中,并且以数据集形式存在。
分类:类型化(dataset派生的 可以直接通过名称引用表和列)和非类型化(需要通过tables集合引用列 一般我们用非类型化的)
实例:
代码
1 //创建数据集和数据表
2 protected void btnCreate_Click(object sender, System.EventArgs e)
3 {
4 DataSet dsUntyped = new DataSet("myDS");//创建数据集 非类型化的数据集
5 DataTable dtMaster = new DataTable("Master");//创建数据表
6 DataTable dtChild = new DataTable("Child");
7 dsUntyped.Tables.Add(dtMaster);//把数据表添加到数据集中
8 dsUntyped.Tables.Add(dtChild);
9 Session["ds"] = dsUntyped;
10
11 }
12 //添加列
13 protected void btnAddColumn_Click(object sender, System.EventArgs e)
14 {
15 DataSet dsUntyped = (DataSet)Session["ds"];
16 dsUntyped.Tables["Master"].Columns.Add("MasterID",typeof(int));
17 dsUntyped.Tables["Master"].Columns.Add("MasterValue",typeof(string));
18 dsUntyped.Tables["Child"].Columns.Add("MasterLink",typeof(int));
19 dsUntyped.Tables["Child"].Columns.Add("ChildID",typeof(int));
20 dsUntyped.Tables["Child"].Columns .Add("ChildValue",typeof(string));
21 //修改表头
22 dsUntyped.Tables["Master"].Columns["MasterID"].Caption = "主ID";
23 dsUntyped.Tables["Master"].Columns["MasterValue"].Caption = "值";
24 Session["ds"] = dsUntyped;
25 Bind();
26 }
27
28 protected void btnAddRow_Click(object sender, System.EventArgs e)
29 {
30 try
31 {
32 DataSet dsUntyped = (DataSet)Session["ds"];
33 //为Master表添加两行
34 DataRow dr = dsUntyped.Tables["Master"].NewRow();
35 dr["MasterID"] = 1;
36 dr["MasterValue"] = "One";
37 dsUntyped.Tables["Master"].Rows.Add(dr);
38 dr = dsUntyped.Tables["Master"].NewRow();
39 dr["MasterID"] = 2;
40 dr["MasterValue"] = "Two";
41 dsUntyped.Tables["Master"].Rows.Add(dr);
42 //为child表添加1行
43 dr = dsUntyped.Tables["Child"].NewRow();
44 dr["MasterLink"] = 1;
45 dr["ChildID"] = 1;
46 dr["ChildValue"] = "ChildOne";
47 dsUntyped.Tables["Child"].Rows.Add(dr);
48 Session["ds"] = dsUntyped;
49 Bind();
50 }
51 catch(Exception ee)
52 {
53 Response.Write(ee.Message);
54 }
55
56 }
57 //添加唯一键
58 protected void Button1_Click(object sender, System.EventArgs e)
59 {
60 DataSet dsUntyped = (DataSet)Session["ds"];
61 System.Data.UniqueConstraint uc = new UniqueConstraint("unqi",dsUntyped.Tables["Master"].Columns["MasterID"]);
62 dsUntyped.Tables["Master"].Constraints.Add(uc);
63 Session["ds"] = dsUntyped;
64 }
65 private void Bind()
66 {
67 DataSet dsUntyped = (DataSet)Session["ds"];
68 dgMaster.DataSource = dsUntyped.Tables["Master"].DefaultView;
69 dgChild.DataSource = dsUntyped.Tables["Child"].DefaultView;
70 this.DataBind();
71 }
72 //添加外键 建立关系两个表
73 protected void btnAddForeign_Click(object sender, System.EventArgs e)
74 {
75 DataSet dsUntyped = (DataSet)Session["ds"];
76 System.Data.ForeignKeyConstraint fc = new ForeignKeyConstraint("fc",dsUntyped.Tables["Master"].Columns["MasterID"],dsUntyped.Tables["Child"].Columns["MasterLink"]);
77 dsUntyped.Tables["Child"].Constraints.Add(fc);
78 Session["ds"] = dsUntyped;
79
80 }
81 //修改MasterID
82 protected void btnUpdateMID_Click(object sender, System.EventArgs e)
83 {
84 DataSet dsUntyped = (DataSet)Session["ds"];
85 dsUntyped.Tables["Master"].Rows[0]["MasterID"] = 4;
86 Bind();
87 }
88 //求值
89 protected void Button2_Click(object sender, System.EventArgs e)
90 {
91 DataSet dsUntyped = (DataSet)Session["ds"];
92 int nIndexTb = int.Parse(ddlTable.SelectedItem.Value);
93 int nIndexRow = int.Parse(tbRow.Text);
94 int nIndexCol = int.Parse(tbCol.Text);
95 object obj = dsUntyped.Tables[nIndexTb].Rows[nIndexRow][nIndexCol];
96 tbResult.Text = obj.ToString();
97
98 }
99 //赋值
100 protected void btnUpdateDs_Click(object sender, System.EventArgs e)
101 {
102 DataSet dsUntyped = (DataSet)Session["ds"];
103 int nIndexTb = int.Parse(ddlTable.SelectedItem.Value);
104 int nIndexRow = int.Parse(tbRow.Text);
105 int nIndexCol = int.Parse(tbCol.Text);
106 dsUntyped.Tables[nIndexTb].Rows[nIndexRow][nIndexCol] = tbResult.Text;
107 Session["ds"] = dsUntyped;
108 Bind();
109 }
好记性不如烂博客

浙公网安备 33010602011771号