DataSet使用方法
aspx
<%@ Page language="c#" Codebehind="CodeUse.aspx.cs" AutoEventWireup="false" Inherits="DsAndXML.CodeUse" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>CodeUse</title> <meta content="Microsoft Visual Studio 7.0" name="GENERATOR"> <meta content="C#" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="CodeUse" method="post" runat="server"> <FONT face="宋体"> <asp:button id="btnCreate" style="Z-INDEX: 100; LEFT: 31px; POSITION: absolute; TOP: 43px" runat="server" Height="36" Width="130" Text="创建数据集和数据表"></asp:button> <asp:Button id="btnUpdateDs" style="Z-INDEX: 117; LEFT: 35px; POSITION: absolute; TOP: 439px" runat="server" Height="36px" Width="131px" Text="赋值"></asp:Button> <asp:Label id="Label3" style="Z-INDEX: 112; LEFT: 352px; POSITION: absolute; TOP: 395px" runat="server">列号:</asp:Label> <asp:Label id="Label2" style="Z-INDEX: 111; LEFT: 209px; POSITION: absolute; TOP: 395px" runat="server">行号:</asp:Label> <asp:Button id="btnUpdateMID" style="Z-INDEX: 107; LEFT: 37px; POSITION: absolute; TOP: 330px" runat="server" Height="36" Width="131" Text="修改MasterID"></asp:Button> <asp:Button id="btnAddForeign" style="Z-INDEX: 106; LEFT: 35px; POSITION: absolute; TOP: 278px" runat="server" Height="36" Width="131" Text="添加外键"></asp:Button> <asp:Button id="Button1" style="Z-INDEX: 105; LEFT: 31px; POSITION: absolute; TOP: 217px" runat="server" Height="36px" Width="130px" Text="添加唯一键"></asp:Button><asp:button id="btnAddRow" style="Z-INDEX: 102; LEFT: 31px; POSITION: absolute; TOP: 161px" runat="server" Height="36px" Width="130px" Text="添加行"></asp:button><asp:button id="btnAddColumn" style="Z-INDEX: 101; LEFT: 31px; POSITION: absolute; TOP: 102px" runat="server" Height="36px" Width="130px" Text="添加列"></asp:button><asp:datagrid id="dgMaster" style="Z-INDEX: 103; LEFT: 242px; POSITION: absolute; TOP: 40px" runat="server" Height="120px" Width="485px"></asp:datagrid><asp:datagrid id="dgChild" style="Z-INDEX: 104; LEFT: 240px; POSITION: absolute; TOP: 193px" runat="server" Height="111px" Width="479px"></asp:datagrid> <asp:TextBox id="tbRow" style="Z-INDEX: 108; LEFT: 275px; POSITION: absolute; TOP: 395px" runat="server" Width="54px"></asp:TextBox> <asp:TextBox id="tbCol" style="Z-INDEX: 109; LEFT: 422px; POSITION: absolute; TOP: 395px" runat="server" Width="64px"></asp:TextBox> <asp:Label id="Label1" style="Z-INDEX: 110; LEFT: 520px; POSITION: absolute; TOP: 399px" runat="server">值:</asp:Label> <asp:TextBox id="tbResult" style="Z-INDEX: 113; LEFT: 585px; POSITION: absolute; TOP: 394px" runat="server" Width="145px"></asp:TextBox> <asp:Label id="Label4" style="Z-INDEX: 114; LEFT: 209px; POSITION: absolute; TOP: 344px" runat="server">表:</asp:Label> <asp:DropDownList id="ddlTable" style="Z-INDEX: 115; LEFT: 277px; POSITION: absolute; TOP: 341px" runat="server"> <asp:ListItem Value="0">表一</asp:ListItem> <asp:ListItem Value="1">表二</asp:ListItem> </asp:DropDownList> <asp:Button id="Button2" style="Z-INDEX: 116; LEFT: 35px; POSITION: absolute; TOP: 389px" runat="server" Height="36px" Width="131px" Text="求值"></asp:Button></FONT></form> </body> </HTML>
aspx.cs
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace DsAndXML { /// <summary> /// CodeUse 的摘要说明。 /// </summary> public class CodeUse : System.Web.UI.Page { protected System.Web.UI.WebControls.Button btnAddColumn; protected System.Web.UI.WebControls.Button btnAddRow; protected System.Web.UI.WebControls.DataGrid dgMaster; protected System.Web.UI.WebControls.DataGrid dgChild; protected System.Web.UI.WebControls.Button Button1; protected System.Web.UI.WebControls.Button btnAddForeign; protected System.Web.UI.WebControls.Button btnUpdateMID; protected System.Web.UI.WebControls.TextBox tbRow; protected System.Web.UI.WebControls.TextBox tbCol; protected System.Web.UI.WebControls.Label Label1; protected System.Web.UI.WebControls.Label Label2; protected System.Web.UI.WebControls.Label Label3; protected System.Web.UI.WebControls.TextBox tbResult; protected System.Web.UI.WebControls.Label Label4; protected System.Web.UI.WebControls.DropDownList ddlTable; protected System.Web.UI.WebControls.Button Button2; protected System.Web.UI.WebControls.Button btnUpdateDs; protected System.Web.UI.WebControls.Button btnCreate; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.btnCreate.Click += new System.EventHandler(this.btnCreate_Click); this.btnAddRow.Click += new System.EventHandler(this.btnAddRow_Click); this.btnAddColumn.Click += new System.EventHandler(this.btnAddColumn_Click); this.Button1.Click += new System.EventHandler(this.Button1_Click); this.btnAddForeign.Click += new System.EventHandler(this.btnAddForeign_Click); this.btnUpdateMID.Click += new System.EventHandler(this.btnUpdateMID_Click); this.Button2.Click += new System.EventHandler(this.Button2_Click); this.btnUpdateDs.Click += new System.EventHandler(this.btnUpdateDs_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void btnCreate_Click(object sender, System.EventArgs e) { DataSet dsUntyped = new DataSet("myDS");//创建数据集 DataTable dtMaster = new DataTable("Master");//创建数据表 DataTable dtChild = new DataTable("Child"); dsUntyped.Tables.Add(dtMaster);//把数据表添加到数据集中 dsUntyped.Tables.Add(dtChild); Session["ds"] = dsUntyped; } private void btnAddColumn_Click(object sender, System.EventArgs e) { DataSet dsUntyped = (DataSet)Session["ds"]; dsUntyped.Tables["Master"].Columns.Add("MasterID",typeof(int)); dsUntyped.Tables["Master"].Columns.Add("MasterValue",typeof(string)); dsUntyped.Tables["Child"].Columns.Add("MasterLink",typeof(int)); dsUntyped.Tables["Child"].Columns.Add("ChildID",typeof(int)); dsUntyped.Tables["Child"].Columns .Add("ChildValue",typeof(string)); //修改表头 dsUntyped.Tables["Master"].Columns["MasterID"].Caption = "主ID"; dsUntyped.Tables["Master"].Columns["MasterValue"].Caption = "值"; Session["ds"] = dsUntyped; Bind(); } private void btnAddRow_Click(object sender, System.EventArgs e) { try { DataSet dsUntyped = (DataSet)Session["ds"]; //为Master表添加两行 DataRow dr = dsUntyped.Tables["Master"].NewRow(); dr["MasterID"] = 1; dr["MasterValue"] = "One"; dsUntyped.Tables["Master"].Rows.Add(dr); dr = dsUntyped.Tables["Master"].NewRow(); dr["MasterID"] = 2; dr["MasterValue"] = "Two"; dsUntyped.Tables["Master"].Rows.Add(dr); //为child表添加1行 dr = dsUntyped.Tables["Child"].NewRow(); dr["MasterLink"] = 1; dr["ChildID"] = 1; dr["ChildValue"] = "ChildOne"; dsUntyped.Tables["Child"].Rows.Add(dr); Session["ds"] = dsUntyped; Bind(); } catch(Exception ee) { Response.Write(ee.Message); } } //添加唯一键 private void Button1_Click(object sender, System.EventArgs e) { DataSet dsUntyped = (DataSet)Session["ds"]; System.Data.UniqueConstraint uc = new UniqueConstraint("unqi",dsUntyped.Tables["Master"].Columns["MasterID"]); dsUntyped.Tables["Master"].Constraints.Add(uc); Session["ds"] = dsUntyped; } private void Bind() { DataSet dsUntyped = (DataSet)Session["ds"]; dgMaster.DataSource = dsUntyped.Tables["Master"].DefaultView; dgChild.DataSource = dsUntyped.Tables["Child"].DefaultView; this.DataBind(); } private void btnAddForeign_Click(object sender, System.EventArgs e) { DataSet dsUntyped = (DataSet)Session["ds"]; System.Data.ForeignKeyConstraint fc = new ForeignKeyConstraint("fc",dsUntyped.Tables["Master"].Columns["MasterID"],dsUntyped.Tables["Child"].Columns["MasterLink"]); dsUntyped.Tables["Child"].Constraints.Add(fc); Session["ds"] = dsUntyped; } private void btnUpdateMID_Click(object sender, System.EventArgs e) { DataSet dsUntyped = (DataSet)Session["ds"]; dsUntyped.Tables["Master"].Rows[0]["MasterID"] = 4; Bind(); } private void Button2_Click(object sender, System.EventArgs e) { DataSet dsUntyped = (DataSet)Session["ds"]; int nIndexTb = int.Parse(ddlTable.SelectedItem.Value); int nIndexRow = int.Parse(tbRow.Text); int nIndexCol = int.Parse(tbCol.Text); object obj = dsUntyped.Tables[nIndexTb].Rows[nIndexRow][nIndexCol]; tbResult.Text = obj.ToString(); } private void btnUpdateDs_Click(object sender, System.EventArgs e) { DataSet dsUntyped = (DataSet)Session["ds"]; int nIndexTb = int.Parse(ddlTable.SelectedItem.Value); int nIndexRow = int.Parse(tbRow.Text); int nIndexCol = int.Parse(tbCol.Text); dsUntyped.Tables[nIndexTb].Rows[nIndexRow][nIndexCol] = tbResult.Text; Session["ds"] = dsUntyped; Bind(); } } }