OracleParameter[] paras = new OracleParameter[9];我想把存储过程的参数对象paras保存到viewstate里面,出现异常:
类型“System.Data.OracleClient.OracleParameter”必须标记为 Serializable 或者具有 ReferenceConverter 以外的 TypeConverter,才能被放置在视图状态中。请问有什么方法可以实现吗?如果不能保存在viewstate里,还有其他保存到页面级别的方法吗?
类型“System.Data.OracleClient.OracleParameter”必须标记为 Serializable 或者具有 ReferenceConverter 以外的 TypeConverter,才能被放置在视图状态中。请问有什么方法可以实现吗?如果不能保存在viewstate里,还有其他保存到页面级别的方法吗?
解决方案 »
- DES解密时提示“要解密的数据的长度无效。”
- 【各位大神速来,急急急】根据经纬度转换省市名称
- js 按回车执行tab事件
- 如何在服务端处理JSON特殊字符
- 请问怎么使超链接被点击后,在一个新窗口里打开页面?
- 帮朋友求购ASP.NET在线考试系统源码(配有后台代码的)
- 本人是刚自学ASP的.有一段代码想给各位老大看下.给我指出是什么意思.导入网站竟然是错误的..
- 显示一个XML文件里的前5项,除了REPEATER还有什么好办法?
- 如何针对自定义控件中的textbox1写脚本?
- 非常容易,请大家任意发挥。 顺便送分!
- 关于动态生成的控件的位置的设定。
- 如何将数据库表里的内容加到DropDownList里?
http://community.csdn.net/Expert/topic/4602/4602005.xml?temp=.7006342
public void SetViewState_SPPara(OracleParameter[] para)
{ System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
System.IO.MemoryStream ms = new System.IO.MemoryStream();
bf.Serialize( ms , para);
ms.Seek( 0 , System.IO.SeekOrigin.Begin);
byte[] b = new byte[ ms.Length ];
ms.Read( b ,0 , b.Length );
ViewState["spPara"] = b;
}还是出现异常,是在序列化的那行代码
bf.Serialize( ms , para);程序集 System.Data.OracleClient, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 中的类型 System.Data.OracleClient.OracleParameter 未标记为可序列化所以还是那个问题,OracleParameter不能序列化
该 Key 只要能关联到你这个特定的查询就可以了。比如用 sql 语句替代掉一些字符串,拼接上参数值就可以构造一个 key.