DataSet与数据库相比,可能不能存储那么多数据,也可能不便于查询,但是可以脱机环境下工作。
ADO.Net断开连接模型使用的命名空间:System.Data.DataSet
DataSet 是 ADO.NET 结构的主要组件,它是从数据源中检索到的数据在内存中的缓存。 DataSet 由一组 DataTable 对象组成,您可使这些对象与 DataRelation 对象互相关联。 您还可通过使用 UniqueConstraint 和 ForeignKeyConstraint 对象在 DataSet 中实施数据完整性。
使用 DataSet 的方法有若干种,这些方法可以单独应用,也可以结合应用。 您可以:
-
以编程方式在 DataSet 中创建 DataTable、DataRelation 和 Constraint,并使用数据填充表。
-
通过 DataAdapter 用现有关系数据源中的数据表填充 DataSet。
-
使用 XML 加载和保持 DataSet 内容。
DataSet ds = new DataSet(); // 实例化一个DataSet
DataTable dt = new DataTable( " Student " ); // 实例化一个DataTalbe
DataColumn c1 = new DataColumn();
c1.ColumnName = " 学号 " ;
c1.DataType = typeof ( string );
DataColumn c2 = new DataColumn();
c2.ColumnName = " 姓名 " ;
c2.DataType = typeof ( string );
// 将两列添加到表里
dt.Columns.Add(c1);
dt.Columns.Add(c2);
// 将表添加到DataSet
ds.Tables.Add(dt);
ds.Tables[ " Student " ].Rows.Add( " 002 " , " 张三 " ); // 弱类型,类型不明确,比较含糊
dt.Rows.Add( " 008 " , " 李四 " );
强类型的DataSet
有XML架构(XSD)的DataSet,在本质上是个DataSet,但多了一个架构的定义
数据处理---强类型的DataSet
强类型的DataSet+TableAdapter+可视化设计 联机脱机都适用!
代码演示:
首先创建数据集:*.xsd
代码实例:
{
// 添加数据
// 定义TableAdapter
StudentDataSetTableAdapters.StudentTableAdapter stu = new StudentDataSetTableAdapters.StudentTableAdapter();
stu.Insert( this .TextBox1.Text, this .TextBox2.Text, int .Parse( this .TextBox3.Text), this .DropDownList1.SelectedValue);
this .Label1.Text = " 操作成功! " ;
}
protected void Button2_Click( object sender, EventArgs e)
{
// 删除数据
// 定义TableAdapter
StudentDataSetTableAdapters.StudentTableAdapter stu = new StudentDataSetTableAdapters.StudentTableAdapter();
stu.Delete( this .TextBox1.Text);
this .Label1.Text = " 操作成功! " ;
}
protected void Button3_Click( object sender, EventArgs e)
{
// 模糊查询(自定义SQL)
// 定义TableAdapter
StudentDataSetTableAdapters.StudentTableAdapter stu = new StudentDataSetTableAdapters.StudentTableAdapter();
this .GridView1.DataSource = stu.GetDataBy模糊查询( this .TextBox2.Text);
this .GridView1.DataBind();
this .Label1.Text = " 操作成功! " ;
}
protected void Button4_Click( object sender, EventArgs e)
{
// 显示所有数据
// 定义TableAdapter
StudentDataSetTableAdapters.StudentTableAdapter stu = new StudentDataSetTableAdapters.StudentTableAdapter();
this .GridView1.DataSource = stu.GetData();
this .GridView1.DataBind();
this .Label1.Text = " 操作成功! " ;
}
通过强类型的DataSet+视图
this .GridView1.DataSource = stu.GetData();
this .GridView1.DataBind();
通过强类型的DataSet+存储过程