using System.IO;
using System.IO.Compression;
using System.Data;
using System.Data.SqlClient;
using System.Runtime.Serialization.Formatters.Binary;
//DataSet
#region
[ WebMethod(Description=" 直接返回DataSet对象 ")]
public DataSet GetDataSet()
{
string sql = "select * from ds_test" ;
SqlConnection sqlConn = new SqlConnection(@"server=WSH-S1112001\SQL2005;uid=sa;pwd=R^c123;database=db_test" );
sqlConn.Open();
SqlDataAdapter sqlDa = new SqlDataAdapter(sql,sqlConn);
DataSet ds = new DataSet( "ds_test");
sqlDa.Fill(ds);
sqlDa.Dispose();
sqlConn.Close();
return ds;
}
[ WebMethod(Description = " 返回DataSet对象用 Binary序列化后的字节数组")]
public byte [] GetDataSetBytes()
{
DataSet ds = GetDataSet();
BinaryFormatter ser = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
ser.Serialize(ms, ds);
byte[] buffer = ms.ToArray();
return buffer;
}
[ WebMethod(Description = " 返回DataSetSurrogate对象用 Binary序列化后的字节数组")]
public byte [] GetDataSetSurrogateBytes()
{
DataSet ds = GetDataSet();
dss. DataSetSurrogate dss = new dss.DataSetSurrogate(ds);
BinaryFormatter ser = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
ser.Serialize(ms,dss);
byte[] buffer = ms.ToArray();
return buffer;
}
[ WebMethod(Description = " 返回DataSetSurrogate对象用 Binary序列化并ZIP 压缩后的字节数组 ")]
public byte [] GetDataSetSurrogateZipBytes()
{
DataSet ds = GetDataSet();
dss. DataSetSurrogate dss = new dss.DataSetSurrogate(ds);
BinaryFormatter ser = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
ser.Serialize(ms, dss);
byte[] buffer = ms.ToArray();
byte[] zipbuffer = Compress(buffer);
return zipbuffer;
}
public byte [] Compress(byte[] data)
{
MemoryStream ms = new MemoryStream();
Stream zipStream = null ;
zipStream = new GZipStream (ms, CompressionMode.Compress, true);
zipStream.Write(data, 0, data.Length);
zipStream.Close();
ms.Position = 0;
byte[] compressed_data=new byte[ms.Length];
ms.Read(compressed_data, 0, int.Parse(ms.Length.ToString()));
return compressed_data;
}
#endregion
Webservice之Dataset传输[服务端]
最新推荐文章于 2022-04-24 20:50:56 发布