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,update\delete),并依此命令来更新数据库中的数据。

  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自身实现的话然并卵。
  未完待续...

dateset是不是在缓存中的更多相关文章

  1. EF封装类 增加版,增加从缓存中查找数据方法,供参考!

    EF封装类 增加版,增加从缓存中查找数据方法,供参考! 这个类是抽象类,我这里增加了需要子类验证的方法ValidateEntity,方便扩展,若想直接使用该类,可以将该类更改成静态类,里面所有的方法都 ...

  2. 简单实现Redis缓存中的排序功能

    1.在实现缓存排序功能之前,必须先明白这一功能的合理性.不妨思考一下,既然可以在数据库中排序,为什么还要把排序功能放在缓存中实现呢?这里简单总结了两个原因:首先,排序会增加数据库的负载,难以支撑高并发 ...

  3. 5.2:缓存中获取单例bean

    5.2  缓存中获取单例bean 介绍过FactoryBean的用法后,我们就可以了解bean加载的过程了.前面已经提到过,单例在Spring的同一个容器内只会被创建一次,后续再获取bean直接从单例 ...

  4. ASP.NET缓存中Cache过期的三种策略

    原文:ASP.NET缓存中Cache过期的三种策略 我们在页面上添加三个按钮并双击按钮创建事件处理方法,三个按钮使用不同的过期策略添加ASP.NET缓存. <asp:Button ID=&quo ...

  5. saiku显示不出新的cube(加载的cube,saiku会保存到缓存中,不重新加载)

    当用workbench 修改cube后,保存到saiku路径. saiku读取该cube时,如果以前加载过该cube(同路径,同名).则不会新加载,而是用缓存中的cube,这个cube是以前的cube ...

  6. 带着新人学springboot的应用02(springboot+mybatis+缓存 中)

    继续接着上一节,大家应该知道驼峰命名法吧!就是我们javabean中属性一般命名是lastName,userName这种类型的,而数据库中列名一般都是last_name,user_name这种的,要让 ...

  7. redis(四)--简单实现Redis缓存中的排序功能

    在实现缓存排序功能之前,必须先明白这一功能的合理性.不妨思考一下,既然可以在数据库中排序,为什么还要把排序功能放在缓存中实现呢?这里简单总结了两个原因:首先,排序会增加数据库的负载,难以支撑高并发的应 ...

  8. 将WebService部署到 SharePoint 2010 gac 缓存中,并用Log4Net记录日志到数据库

    最近做了一个sharePoint项目,需要实现的功能是,第三方网站访问我们sharePoint中的数据,通过Webservice方式实现文件的上传和下载. 于是代码工作完成了之后,本地调试没什么问题, ...

  9. Spring源码分析(十三)缓存中获取单例bean

    摘要:本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 介绍过FactoryBean的用法后,我们就可以了解bean加载的过程了 ...

随机推荐

  1. 小票打印机指令集封装(支持EPSON指令)

    最近写了一些关于小票打印机的程序,不难,但是记录下来,作为足迹吧. 现在市场上的小票机基本都支持EPSON指令.指令集文档 对指令集进行了自己的封装,方便以后调用: package aheiziUti ...

  2. little's law(律特法则)

    参考:https://en.wikipedia.org/wiki/Little%27s_law(周末看一下) 最近在做性能压力测试,开始时,压力压不上去,参考: N = X * E[T] ,N就是你的 ...

  3. BBOSS框架使用jquery方式传參到后台的时候,要注意的事项

    BBOSS框架.从前台传到后台的时候,參数要以这样的方式: public String initAddOrModExtendUser(HttpServletRequest request,       ...

  4. .net 调用C++类库

    事实上这一直是个非常无解的问题.最好的办法是将C++类库写成COM. 可是有时候往往不能这个做.那就仅仅有两种办法:转成C函数形式或者Manage C++封装. 下文就介绍了这两种方法. 原帖:htt ...

  5. Xcode和IOS模拟器

    Xcode和IOS模拟器 目录 概述 Xcode常用操作 学会用Instrument IOS模拟器 概述 Xcode常用操作 整体缩进或者缩退 command+“[” .command+“]” 在同一 ...

  6. IIS错误日志:Failed to execute request because the App-Domain

    装上IIS和.net2.0框架后,打开ASP.NET站点,出现Server Application Error,出先此问题,一般先看系统的“事件管理器”,于是查看服务器的“事件管理器”中的“应用程序” ...

  7. The Last Practice

    Problem Description Tomorrow is contest day, Are you all ready?We have been training for 45 days, an ...

  8. PetaPOCO 一对多 多对一 多对多

    PetaPoco支持将结果集中的一行映射到到两个以及更多POCO,但是如何处理一对多和多对多关系? 1.PetaPoco 支持将结果映射为多个POCO类型,提供了另一种方法来处理SQL的Join查询. ...

  9. [Windows] 解决kmplayer播放rmvb文件音视不同步

    1. 到該帖子 http://www.kmplayer.com/forums/showthread.php?t=8755 下載附件中的4個檔案放到KMP 根 目錄下(此文件已在附件中上传) 2.於KM ...

  10. [Java] HashMap详解

    转自:http://alex09.iteye.com/blog/539545 HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 Hash ...