C# 在视图状态下存储数据表

C# 在视图状态下存储数据表,c#,asp.net,datatable,C#,Asp.net,Datatable,我想我找到了:D,错误的数据:D——史蒂夫·乔布斯 我有一个datatable对象,我想将其存储在Viewstate中,但有时会发生错误(不常见) Error: Sys.WebForms.PageRequestManagerServerErrorException: Error serializing value 'Table1' of type 'System.Data.DataTable.' 任何帮助请使用会话存储DataTable,因为Viewstate在存储像DataTable这样的

我想我找到了:D,错误的数据:D——史蒂夫·乔布斯


我有一个datatable对象,我想将其存储在Viewstate中,但有时会发生错误(不常见)

Error: Sys.WebForms.PageRequestManagerServerErrorException: Error serializing value 'Table1' of type 'System.Data.DataTable.'

任何帮助请使用会话存储DataTable,因为Viewstate在存储像DataTable这样的大型对象时效率不高,因为它们与每个服务器请求包装在一起

  Session[dt] = datatableobj; 

您面临的问题是因为数据表的大小

在ViewState中存储datatable不是一个好的做法,因为它会增加页面的大小并降低性能,而且ViewState可以在客户端解密,因此datatable不安全


您可以通过会话或更好地从缓存中执行此操作,如果不经常使用,我建议您从数据库中重新查询。

如果您存储大量的行和列,ViewState可能不是您的最佳存储介质。不,这不是一个大数据,我只有5行,我不知道它为什么有时会工作mes notI没有大数据,只有5行,正常工作需要一段时间问题是我想对Datatable做一些修改这就是为什么我想要一个临时版本,我使用视图状态确保在我离开页面时将其删除Datatable中存在哪些值,如果在表中存储一个不可序列化的对象,那么该表不再可序列化。您需要为每个控件编写序列化程序/反序列化程序。