c#两种方式 dataset 与byte[] 字节的转换函数
2012-04-22 15:02
309 查看
sing System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.Xml;
using System.IO;
using System.Text.RegularExpressions;
using System.Data;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
/// <summary>
/// dataset 转转换byte[] 字节
/// </summary>
/// <param name="str"></param>
public static byte[] DataToByte(DataSet ds)
{
byte[] bArrayResult = null;
ds.RemotingFormat = SerializationFormat.Binary;
MemoryStream ms = new MemoryStream();
IFormatter bf = new BinaryFormatter();
bf.Serialize(ms, ds);
bArrayResult = ms.ToArray();
ms.Close();
ms.Dispose();
return bArrayResult;
}
/// <summary>
/// byte[] 字节转datasheet
/// </summary>
/// <param name="bArrayResult"></param>
/// <returns></returns>
public static DataSet ByteToDataset(byte[] bArrayResult)
{
DataSet dsResult = new DataSet();
MemoryStream ms = new MemoryStream(bArrayResult);
IFormatter bf = new BinaryFormatter();
object obj = bf.Deserialize(ms);
dsResult = (DataSet)obj;
ms.Close();
ms.Dispose();
return dsResult;
}
/// <summary>
/// 第二种方法转换
/// </summary>
/// <param name="ds"></param>
/// <returns></returns>
public static byte[] GetBinaryFormatDataSet(DataSet ds)
{
//创建内存流
MemoryStream memStream = new MemoryStream();
//产生二进制序列化格式
IFormatter formatter = new BinaryFormatter();
//指定DataSet串行化格式是二进制
ds.RemotingFormat = SerializationFormat.Binary;
//串行化到内存中
formatter.Serialize(memStream, ds);
//将DataSet转化成byte[]
byte[] binaryResult = memStream.ToArray();
//清空和释放内存流
memStream.Close();
memStream.Dispose();
return binaryResult;
}
/// <summary>
/// 第二种方法转换
/// </summary>
/// <param name="binaryData"></param>
/// <returns></returns>
public static DataSet RetrieveDataSet(byte[] binaryData)
{
//创建内存流
MemoryStream memStream = new MemoryStream(binaryData);
memStream.Seek(0, SeekOrigin.Begin);
//产生二进制序列化格式
IFormatter formatter = new BinaryFormatter();
//反串行化到内存中
object obj = formatter.Deserialize(memStream);
//类型检验
if (obj is DataSet)
{
DataSet dataSetResult = (DataSet)obj;
return dataSetResult;
}
else
{
return null;
}
}
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.Xml;
using System.IO;
using System.Text.RegularExpressions;
using System.Data;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
/// <summary>
/// dataset 转转换byte[] 字节
/// </summary>
/// <param name="str"></param>
public static byte[] DataToByte(DataSet ds)
{
byte[] bArrayResult = null;
ds.RemotingFormat = SerializationFormat.Binary;
MemoryStream ms = new MemoryStream();
IFormatter bf = new BinaryFormatter();
bf.Serialize(ms, ds);
bArrayResult = ms.ToArray();
ms.Close();
ms.Dispose();
return bArrayResult;
}
/// <summary>
/// byte[] 字节转datasheet
/// </summary>
/// <param name="bArrayResult"></param>
/// <returns></returns>
public static DataSet ByteToDataset(byte[] bArrayResult)
{
DataSet dsResult = new DataSet();
MemoryStream ms = new MemoryStream(bArrayResult);
IFormatter bf = new BinaryFormatter();
object obj = bf.Deserialize(ms);
dsResult = (DataSet)obj;
ms.Close();
ms.Dispose();
return dsResult;
}
/// <summary>
/// 第二种方法转换
/// </summary>
/// <param name="ds"></param>
/// <returns></returns>
public static byte[] GetBinaryFormatDataSet(DataSet ds)
{
//创建内存流
MemoryStream memStream = new MemoryStream();
//产生二进制序列化格式
IFormatter formatter = new BinaryFormatter();
//指定DataSet串行化格式是二进制
ds.RemotingFormat = SerializationFormat.Binary;
//串行化到内存中
formatter.Serialize(memStream, ds);
//将DataSet转化成byte[]
byte[] binaryResult = memStream.ToArray();
//清空和释放内存流
memStream.Close();
memStream.Dispose();
return binaryResult;
}
/// <summary>
/// 第二种方法转换
/// </summary>
/// <param name="binaryData"></param>
/// <returns></returns>
public static DataSet RetrieveDataSet(byte[] binaryData)
{
//创建内存流
MemoryStream memStream = new MemoryStream(binaryData);
memStream.Seek(0, SeekOrigin.Begin);
//产生二进制序列化格式
IFormatter formatter = new BinaryFormatter();
//反串行化到内存中
object obj = formatter.Deserialize(memStream);
//类型检验
if (obj is DataSet)
{
DataSet dataSetResult = (DataSet)obj;
return dataSetResult;
}
else
{
return null;
}
}
相关文章推荐
- c#两种方式 dataset 与byte[] 字节的转换
- 关于在C#中数组(byte[])复制的两种方式。字节偏移复制与安全复制
- 关于在C#中数组(byte[])复制的两种方式。字节偏移复制与安全复制
- Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式
- 两种方式破解爱因斯坦最你那问题的C#算法
- C#转义字符的两种处理方式
- Skyline创建三维管线两种方式(C#)
- C#中字节数组(byte[])和字符串相互转换
- C#替换桌面的两种方式
- C# 提供两种切割圆形图片的方式
- C# 取IP两种方式
- C#中定义常量的两种方式
- java中byte数组与int类型的转换(两种方式)
- C# 接受邮件 两种方式
- C#字节byte类型读取与写入
- java中byte数组与int类型的转换(两种方式)
- C#利用WebClient 两种方式下载文件(一)
- C和C#两种方式实现简单的邮件发送
- ArcEngine与C#添加shp文件的两种方式
- java中byte数组与int类型的转换(两种方式)