.net WebService 大数据量时性能的提高

1.直接返回DataSet对象

C#代码  收藏代码
  1. [WebMethod(Description = "直接返回DataSet对象")]  
  2.        public DataSet GetUserListDateSet()  
  3.        {  
  4.            SqlConnection sqlCon = new SqlConnection("Data Source=.,1444;Initial Catalog=StudyNet;Persist Security Info=True;User ID=**;Password=******");  
  5.            SqlCommand cmd = new SqlCommand();  
  6.            cmd.Connection = sqlCon;  
  7.            cmd.CommandText = "select * from T_User";  
  8.            SqlDataAdapter da = new SqlDataAdapter(cmd);  
  9.            DataSet ds = new DataSet();  
  10.            da.Fill(ds);  
  11.            return ds;  
  12.        }  
 
2.返回DataSet对象用Binary序列化后的字节数组
C#代码  收藏代码
  1. [WebMethod(Description = "返回DataSet对象用Binary序列化后的字节数组")]  
  2.         public byte[] GetUserListDateSetBytes()  
  3.         {  
  4.             DataSet ds = GetUserListDateSet();  
  5.             //序列化  
  6.             BinaryFormatter ser = new BinaryFormatter();  
  7.             MemoryStream stream = new MemoryStream();  
  8.             ser.Serialize(stream, ds);  
  9.             return stream.GetBuffer();  
  10.         }  
3.返回DataSetSurrogate对象用Binary序列化后的字节数组
C#代码  收藏代码
  1. [WebMethod(Description = "返回DataSetSurrogate对象用Binary序列化后的字节数组")]  
  2.         public byte[] GetUserListDateSetSurrogateBytes()  
  3.         {  
  4.             DataSet ds = GetUserListDateSet();  
  5.             DataSetSurrogate dss = new DataSetSurrogate(ds);  
  6.             //序列化  
  7.             BinaryFormatter ser = new BinaryFormatter();  
  8.             MemoryStream stream = new MemoryStream();  
  9.             ser.Serialize(stream, dss);  
  10.             return stream.GetBuffer();  
  11.         }  
 
4.返回DataSetSurrogate对象用Binary序列化并Zip压缩后的字节数组
C#代码  收藏代码
  1. [WebMethod(Description = "返回DataSetSurrogate对象用Binary序列化并ZIP压缩后的字节数组")]  
  2.         public byte[] GetUserListDateSetSurrogateZipBytes()  
  3.         {  
  4.             DataSet ds = GetUserListDateSet();  
  5.             DataSetSurrogate dss = new DataSetSurrogate(ds);  
  6.             //序列化  
  7.             BinaryFormatter ser = new BinaryFormatter();  
  8.             MemoryStream stream = new MemoryStream();  
  9.             ser.Serialize(stream, dss);  
  10.             //压缩  
  11.             return Compress(stream.ToArray());  
  12.         }  
  13.         /// <summary>  
  14.         /// 压缩数据  
  15.         /// </summary>  
  16.         /// <param name="data"></param>  
  17.         /// <returns></returns>  
  18.         public byte[] Compress(byte[] data)  
  19.         {  
  20.             MemoryStream ms = new MemoryStream();  
  21.             GZipStream zipStream = new GZipStream(ms, CompressionMode.Compress);  
  22.             zipStream.Write(data, 0, data.Length);//将数据压缩并写到基础流中  
  23.             zipStream.Close();  
  24.             return ms.ToArray();  
  25.         }  
  5.结果图


 
原文地址:https://www.cnblogs.com/ranran/p/4024303.html