基于BinaryFormatter的DataSet序列化与反序列化示例
需积分: 3 35 浏览量
更新于2024-12-26
收藏 1KB TXT 举报
本篇代码涉及的是.NET平台下的数据处理与序列化技术,主要围绕`DataSet`对象进行操作。DataSet是Microsoft SQL Server提供的一个用于存储和操作结构化数据的数据模型,它将数据组织成多个表格,每个表格代表一个实体,表格中的行和列对应属性和值。
首先,来看`SurrogateRead1`方法,这个方法的主要功能是从数据库中执行SQL查询获取数据,然后将结果转换为`DataSet`对象。它通过`SqlHelper.ExecuteDataset`方法连接到数据库(参数cnn),执行SQL语句("select * from t_busdocbase"),得到的结果集被存储在`DataSet`对象`ds`中。接下来,创建了一个名为`DataSetSurrogate`的自定义类,并对原始`DataSet`进行了序列化处理。这里使用了`BinaryFormatter`,这是一个.NET框架提供的序列化工具,用于将对象转换为字节数组,便于在网络传输或存储时使用。序列化后的字节数组存储在`MemoryStream`中,最后返回这个数组。
`button3_Click`方法是用户界面的一部分,当按钮被点击时,会调用Web服务接口`svs.SurrogateRead1()`来获取序列化的`byte[]`数据。接收到数据后,通过`BinaryFormatter`反序列化回`DataSetSurrogate`对象,再调用`ConvertToDataSet()`方法将其转换回标准的`DataSet`格式。这样,原始的数据库查询结果就被展示在`dataGrid1`控件中,供用户查看。同时,为了保证数据安全性和性能,原始的`MemoryStream`对象在使用完毕后被关闭。
总结来说,这段代码展示了如何在C#中使用`DataSet`进行数据获取、序列化和反序列化的过程,以及在Web服务环境下进行数据交换。它体现了.NET框架中对复杂数据结构的管理和网络通信的支持,是企业级应用程序中常见的数据处理策略之一。同时,序列化和反序列化对于分布式系统和跨平台交互是非常关键的技术。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-03-30 上传
2022-11-18 上传
2021-03-17 上传
2014-03-24 上传
2010-01-21 上传
2021-03-14 上传
test20081210
- 粉丝: 0
- 资源: 2
最新资源
- easymc:easymc.io的API,该站点允许您使用令牌登录Minecraft帐户
- thread-stream:一种将数据发送到Node.js辅助线程的流传输方式
- lab2Zad5
- Krumo-开源
- Megasena-crx插件
- chengfakoujue,c语言采蘑菇源码,c语言项目
- 独立按键_单片机C语言实例(纯C语言源代码).zip
- s9:基于 Svelte 的前端业务框架
- smartsoft:适用于任何角度,嵌套,离子项目的多种工具
- cofcod
- Notes_About_CL:对比学习笔记
- 安卓一个木函v7.9.8.8 多功能工具箱.txt打包整理.zip
- SCATTERSHAPE:将 SCATTER 中的补丁变成形状。-matlab开发
- burger_war_autotest:burger_war_autotest
- MatrixLiteLib,c语言源码中文版,c语言项目
- todo-code-along