zoukankan
html css js c++ java
DataSet 添加数据集、行、列、主键和外键等操作示例
前台代码:html
<%
@ 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
>
后台代码: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)
{
//
在此处放置用户代码以初始化页面
}
Web Form Designer generated code
#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();
}
}
}
如何把利用DataSet的GetXml()方法获得的字符串再转成DataSet对象
DataSet ds
=
db.ExecSqlForDataSet( strSQL );
string
strDS
=
ds.GetXml();
//
如何把strDS转换成DataSet对象??
--------------------------------------------------------------------------------
String strDS
=
"
"
System.IO.StringReader reader
=
new
System.IO.StringReader(strDS);
ds.ReadXml(reader);
reader.Close();
查看全文
相关阅读:
ASP.NET Core 问题排查:Request.EnableRewind 后第一次读取不到 Request.Body
解决 AutoMapper ProjectTo 不起作用的问题
解决 ASP.NET Core 自定义错误页面对 Middleware 异常无效的问题
ASP.NET Core 从 gitlab-ci 环境变量读取配置
终于解决 xUnit.net 测试中无法输出到控制台的问题
ASP.NET Core 新建线程中使用依赖注入的问题
前端回顾:2016年 JavaScript 之星
前端工程师和设计师必读文章推荐【系列三十五】
AsciiMorph
Notyf
原文地址:https://www.cnblogs.com/skylaugh/p/595646.html
最新文章
使用 IntraWeb (24)
使用 IntraWeb (23)
使用 IntraWeb (22)
使用 IntraWeb (21)
使用 IntraWeb (20)
使用 IntraWeb (19)
corefx 源码追踪:找到引起 SqlDataReader.ReadAsync 执行延迟的那行代码
Windows 上编译 corefx 源码生成 Linux 上可用的 System.Data.SqlClient.dll
WithOne 实体关系引起 EF Core 自动删除数据
EF Core 相关的千倍性能之差: AutoMapper ProjectTo VS Mapster ProjectToType
热门文章
好大一个坑: EF Core 异步读取大字符串字段比同步慢100多倍
EF Core 小坑:DbContextPool 会引起数据库连接池连接耗尽
EF Core HasQueryFilter 的小坑
工厂参观记:.NET Core 中 HttpClientFactory 如何解决 HttpClient 臭名昭著的问题
一码阻塞,万码等待:ASP.NET Core 同步方法调用异步方法“死锁”的真相
终于明白了 C# 中 Task.Yield 的用途
配置 Tomcat 以服务方式自动运行
ASP.NET Core 集成测试中结合 WebApplicationFactory 使用 SQLite 内存数据库
.NET Core 中基于 IHostedService 实现后台定时任务
消除 ASP.NET Core 告警 "No XML encryptor configured. Key may be persisted to storage in unencrypted form"
Copyright © 2011-2022 走看看