• dateset是不是在缓存中


    C#开发erp系统的时候有一个多表数据的查询展示到页面,采用了存储过程的方式,但是存储过程中没有加入分页(菜比)。刚开始测试数据几百条没有问题,当数据量提升至十万级后页面加载速度就很卡了,一般是使用分页来解决这个问题。这种情况我思考dateset是不是再缓存中?

      dateset表示一个数据集,是数据在内存中的缓存。

      每一个DateSet都有很多歌DateTables和Relationships。Relationships是一种联系两个数据表的特殊表。每一个DateTable都有很多DateRows和Datecols,页包括ParentRelations,ChildRelations和一些限制条件例如:主键不可重复。

      对于DateSet的任何操作都是在计算机的缓存中完成的。

      在将数据库中的数据抽取到之后,程序将数据放在DateSet这个容器中,他是各个数据源中的数据在计算机内存中映射成的缓存,也就是说DateSet是一个数据容器,DateSet对象是一个可以用xml形式表示的数据视图,是一种数据关系视图。

      DateSet的三种使用方法:

      1:把数据库中的数据通过DateAdapter对象填充到DateSet中

          第一步:通过DataAdapter的SqlCommand属性从数据库中检索出需要的数据,SqlCommand是一个command对象。

        第二步:用DataAdapter的Fill方法把检索来的数据填充到DateSet中。

      2:通过DataAdapeter对象操作DateSet实现更新数据库

        DateAdapter使用过它的Update方法实现以DateSet中数据来更新数据库。当DateSet实例中包含数据发生变化后,此时调用Update方法,DateAdapter将分析已作出更改并执行相应的命令(例如:insert,updatedelete),并依此命令来更新数据库中的数据。

      3:把XML数据流或者文本加载到DateSet(ReadXML方法)

      DateSet的数据绑定:

          数据绑定分成二类:简单型数据绑定和复杂型数据绑定。适用于简单型数据绑定组件一般有Lable、TextBox等,适用于复杂性数据绑定的组件一般有DataGrid、ListBox、ComboBox等。

     
        简单型数据绑定一般使用这些组件中的DataBindings属性的Add方法把DataSet中某一个DataTable中的某一行和组件的某个属性绑定起来,从而达到显示数据的效果。
     
      比如:textBox1.DataBindings.Add ( "Text" , dsDataSet1, " Customers. CustomerID ") ;
     
          复杂性数据绑定一般是设定组件的DataSource属性和DisplayMember属性来完成数据绑定的。DataSource属性值一般设定为要绑定的DataSet,DisplayMember属性值一般设定为要绑定的数据表或数据表中的某一列。
      比如:dataGrid1.DataSource = dsDataSet1 ;
      dataGrid1.DataMember = " Customers " ;
     
      DataSet的属性Tables可以获取该DATASET中表的数量:DataSet.Tables.Count
     
      DataSet的Tables是一个Table数组,指定其中的一个表:DataSet.Tables[i];//i为
     
      Table在数组序列中的位置 或 DataSet.Tables["表名"]; 
     
      通过Table的Rows对象组的Count获取该表的记录数:DataSet.Tables[i].Rows.Count;
     
      获取列数:DataSet.Tables[i].Columns.Count;
     
      这些是DateSet的简单应用,但是对于DateSet的缓存这个问题,还需要探讨。
      我的程序中分别两次刷新页面请求数据库,完成两次DateSet的查询,但是第二次的查询并没有使用缓存,这是需要在程序中指定的,如果单单是希望ef自身实现的话然并卵。
      未完待续...
  • 相关阅读:
    移动端调试Vconsole
    Vue-返回顶部
    Vue-封装loading
    Vue-水印封装
    Vue-封装scroll触底
    微信小程序-图片上传
    前端面试题(2)
    前端常见面试题
    服务端渲染(SSR)和客户端(CSR)渲染的区别
    什么是模块化?模块化开发的好处
  • 原文地址:https://www.cnblogs.com/zhaokunbokeyuan256/p/6088135.html
Copyright © 2020-2023  润新知