1、直接返回DataSet对象
特点:通常组件化的处理机制,不加任何的修饰及处理。
优点:代码精简,易于处理,小数据量处理比较快。
缺点:大数据量的传递处理慢,消耗网络资源。
建议:当应用系统在内网、专网(局域网)或者外网(广域网)且数据量在KB级时的应用,采用该模式。
BLL:
public DataSet GetDataSet()
{
string sql ="select * from Users";
SqlConnectioin con = new SqlConnection("Server=192.168.79.20;DataBase=1212,user=sa;pwd=sa");
con.Open();
SqlDataAdapter sa = new SqlDataAdapter (sql,con);
DataSet ds = new DataSet();
sa.Fill(ds);
con.Close();
return ds;
}
对象调用:
protect void btn_ok(Object sender,EventArgs e)
{
DataSet ds =GetDataSet();
this.Grivdview.DataSoure=ds.Table[0];
this.GrivdView.DataBind();
}
2、返回DataSet对象用Binary序列化后的字节数组
特点:字节数组流的处理模式;
优点:易于处理,可以对中文内容起到加密作用。
缺点:大数据量的传递处理慢,较消耗网络资源。
建议:但系统需要进行较大数据交换时采用。
BLL:
public byte[] GetDataSetByte()
{
DataSet ds =GetDataSet();//获取DataSet数据对象
BinaryFormatter bf = new BinaryFormatter();//定义二进制
MemoryStream ms = new MemoryStream();//定义内存流
bf.Serialize(ms, ds);//以二进制的形式对DataSet对象进行序列化,并存入到内存流中
byte[] buff = ms.ToArray();//把内存流的数据写入字节数组
return buff;
}
对象调用:
protect void btn_ok(Object sender,EventArgs e)
{
byte[] buffer = GetDataSetByte();
BinaryFormatter bf = new BinaryFormatter();
DataSet ds = bf.Deserialize(new MemoryStream(buffer)) as DataSet;
this.Grivdview.DataSoure=ds.Table[0];
this.GrivdView.DataBind();
}
3、返回DataSetSurrogate对象,该对象采用Binary序列化后的字节数组
特点:微软提供的开源组件。
下载地址:http://support.microsoft.com/kb/829740/zh-cn
优点:易于处理,可以对中文内容起到加密作用。
缺点:大数据量传递处理慢,较消耗网络资源。
建议:但系统需要进行较大数据交换时采用。
4、返回DataSetSurrogate对象,该对象采用Binary序列化并ZIP压缩后的字节数组
特点:对字节流数组进行压缩后传递,需微软DataSetSurrogate.dll。
优点:当数据量大时,性能提高效果明显,压缩比例大。
缺点:相比第三方组件,压缩比例还需有待提高。
建议:当系统需要进行大数据量网络数据传递时,建议采用此种可靠、高效、免费的方法。