细说:DataSet (ADO.NET)


DataSet与数据库相比,可能不能存储那么多数据,也可能不便于查询,但是可以脱机环境下工作。

ADO.Net断开连接模型使用的命名空间:System.Data.DataSet

 

DataSet 是 ADO.NET 结构的主要组件,它是从数据源中检索到的数据在内存中的缓存。 DataSet 由一组 DataTable 对象组成,您可使这些对象与 DataRelation 对象互相关联。 您还可通过使用 UniqueConstraint 和 ForeignKeyConstraint 对象在 DataSet 中实施数据完整性。

使用 DataSet 的方法有若干种,这些方法可以单独应用,也可以结合应用。 您可以:

  • 以编程方式在 DataSet 中创建 DataTable、DataRelation 和 Constraint,并使用数据填充表。

  • 通过 DataAdapter 用现有关系数据源中的数据表填充 DataSet。

  • 使用 XML 加载和保持 DataSet 内容。



复制代码
  // 2010-9-7Dataset学习(通过代码构造一个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

 

代码实例:

 

复制代码
  protected   void  Button1_Click( object  sender, EventArgs e)
    {
        
// 添加数据
        
// 定义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+视图

 

StudentDataSetTableAdapters.ViewStudentTableAdapter stu = new  StudentDataSetTableAdapters.ViewStudentTableAdapter();
        
this .GridView1.DataSource = stu.GetData();
        
this .GridView1.DataBind();

 

 

 通过强类型的DataSet+存储过程

 

  new  StudentDataSetTableAdapters.QueriesTableAdapter().usp_insertuser( this .TextBox2.Text,  this .TextBox3.Text,  this .TextBox1.Text,  this .DropDownList1.SelectedValue);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值