将临时数据存储在DataGridView中

时间:2012-11-14 10:17:30

标签: c# .net winforms

例如,我有一个类(User)和30个值(属性),其中10个我在DataGridView中显示为列,但其他(每个用户的设置(例如,超时发出请求,任何其他BL值) )大约20个值,我只想在XML文件中存储(我可以进行序列化/反序列化)。

所以,我需要存储没有显示20个值的任何地方,这是什么最好的做法? 它是DataGridView中的隐藏列还是其他任何东西?

据我所知,我必须把它存放在一起,但我能在哪里做到?我应该在两个存储数据块(用户[10个值] +用户[20个值])之间建立关系,以便在用XML序列化后生成它们吗?

2 个答案:

答案 0 :(得分:0)

使用数据缓存有助于您的场景。

要点:

数据缓存是将数据存储在内存中以便快速访问。通常,获得成本高昂的信息(在性能方面)存储在高速缓存中。存储在Web应用程序环境中的高速缓存中的一个更常见的项是通常显示的数据库值;通过缓存此类信息,而不是依赖于重复的数据库调用,减少了对Web服务器和数据库服务器系统资源的需求,并增加了Web应用程序的可伸缩性。正如微软雄辩地提到的那样,

  

“缓存是一种广泛用于计算增加的​​技术   保持频繁访问或昂贵的数据   记忆。在Web应用程序的上下文中,缓存用于保留   跨HTTP请求的页面或数据,无需花费就可以重复使用   重新创造它们。“

请参阅asp.net中如何使用数据缓存的链接

http://www.asp.net/web-forms/tutorials/data-access/caching-data/caching-data-in-the-architecture-cs

http://geekswithblogs.net/Rhames/archive/2011/01/10/using-the-asp.net-cache-to-cache-data-in-a-model.aspx

http://blog.ntotten.com/2011/04/29/caching-data-in-asp-net-applications/

更新

如果你没有数据库而你正在使用winforms,那么使用linq查询存储到列表并建立关系。

以下是显示如何使用连接和linqs

的链接

http://weblogs.asp.net/rajbk/archive/2010/03/12/joins-in-linq-to-sql.aspx

http://geekswithblogs.net/WillSmith/archive/2008/05/28/linq-joins-and-groupings.aspx

答案 1 :(得分:0)

我经常使用的最佳做法是检索集合中的所有数据,例如List, DataTable, EntityCollection, ...或任何IEnumerable类型,并将其绑定到您的{{1其中有DataGridView。在这种情况下,您应该在设计器或代码中手动将特定列添加到AutoGenerateColumns = false 。代码方法是这样的:

DataGridView