DataSet高性能数据传输方式的实现
2006-10-10 16:15
555 查看
客户端调用
//直接dataset
protected void Button2_Click(object sender, EventArgs e)
{
DateTime start = DateTime.Now;
GetData.GetData g=new GetData.GetData();
object obj = g.GetItems();
DataSet ds = (DataSet)obj;
this.GridView1.DataSource = ds.Tables[0].DefaultView;
this.GridView1.DataBind();
TimeSpan t1 = new TimeSpan(start.Ticks);
TimeSpan t2 = new TimeSpan(DateTime.Now.Ticks);
TimeSpan ts = t2.Subtract(t1).Duration();
Response.Write(ts.ToString());
}
//序列化
protected void Button3_Click(object sender, EventArgs e)
{
DateTime start = DateTime.Now;
GetData.GetData g = new GetData.GetData();
byte[] bytes = g.getItemsBytes();
using (MemoryStream ms = new MemoryStream(bytes))
{
IFormatter f = new BinaryFormatter();
object obj = f.Deserialize(ms);
DataSet ds = (DataSet)obj;
this.GridView1.DataSource = ds.Tables[0].DefaultView;
this.GridView1.DataBind();
TimeSpan t1 = new TimeSpan(start.Ticks);
TimeSpan t2 = new TimeSpan(DateTime.Now.Ticks);
TimeSpan ts = t2.Subtract(t1).Duration();
Response.Write(ts.ToString());
}
}
服务器端提供:
[WebMethod]
public byte[] getItemsBytes()
{
DataSet ds = GetItems();
ds.RemotingFormat = SerializationFormat.Binary;
using (MemoryStream ms = new MemoryStream())
{
IFormatter f = new BinaryFormatter();
f.Serialize(ms, ds);
return ms.ToArray();
}
}
[WebMethod]
public DataSet GetItems()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable("TB_test");
dt.Columns.Add("ID", typeof(System.Int32));
dt.Columns.Add("Name", typeof(System.String));
for (int i = 0; i < 50000; i++)
{
DataRow dr = dt.NewRow();
dr["ID"] = i;
dr["Name"] = "name" + i.ToString();
dt.Rows.Add(dr);
}
ds.Tables.Add(dt);
return ds;
}
//直接dataset
protected void Button2_Click(object sender, EventArgs e)
{
DateTime start = DateTime.Now;
GetData.GetData g=new GetData.GetData();
object obj = g.GetItems();
DataSet ds = (DataSet)obj;
this.GridView1.DataSource = ds.Tables[0].DefaultView;
this.GridView1.DataBind();
TimeSpan t1 = new TimeSpan(start.Ticks);
TimeSpan t2 = new TimeSpan(DateTime.Now.Ticks);
TimeSpan ts = t2.Subtract(t1).Duration();
Response.Write(ts.ToString());
}
//序列化
protected void Button3_Click(object sender, EventArgs e)
{
DateTime start = DateTime.Now;
GetData.GetData g = new GetData.GetData();
byte[] bytes = g.getItemsBytes();
using (MemoryStream ms = new MemoryStream(bytes))
{
IFormatter f = new BinaryFormatter();
object obj = f.Deserialize(ms);
DataSet ds = (DataSet)obj;
this.GridView1.DataSource = ds.Tables[0].DefaultView;
this.GridView1.DataBind();
TimeSpan t1 = new TimeSpan(start.Ticks);
TimeSpan t2 = new TimeSpan(DateTime.Now.Ticks);
TimeSpan ts = t2.Subtract(t1).Duration();
Response.Write(ts.ToString());
}
}
服务器端提供:
[WebMethod]
public byte[] getItemsBytes()
{
DataSet ds = GetItems();
ds.RemotingFormat = SerializationFormat.Binary;
using (MemoryStream ms = new MemoryStream())
{
IFormatter f = new BinaryFormatter();
f.Serialize(ms, ds);
return ms.ToArray();
}
}
[WebMethod]
public DataSet GetItems()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable("TB_test");
dt.Columns.Add("ID", typeof(System.Int32));
dt.Columns.Add("Name", typeof(System.String));
for (int i = 0; i < 50000; i++)
{
DataRow dr = dt.NewRow();
dr["ID"] = i;
dr["Name"] = "name" + i.ToString();
dt.Rows.Add(dr);
}
ds.Tables.Add(dt);
return ds;
}
相关文章推荐
- 利用HttpWebRequest以POST方式提交Json数据-后台实现不同平台间的数据传输
- 实现一个压缩Remoting传输数据的Sink:CompressionSink (转载)
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- dsp控制DM9000实现802.3数据收发第三篇,调试过程程序第二版;接受部分可用,但是容易掉帧,采用的读取dm9000中断寄存器的方式获取数据
- 应用系统之间数据传输的几种方式
- 数据结构(二)--- 线性表链表(单链表)java实现方式
- cocos2dx HttpClient实现rapidjson格式数据传输
- C#实现Socket传输简单数据
- 将Table数据导出至Excel文件(中国移动实现的方式)
- webservice 优化性能的方法,以返回Dataset为例,当大数据量时采用先压缩的方式,调用再解压缩
- 实验一:数据传送(四种方式实现)
- Delphi实现WebService带身份认证的数据传输
- 基于UDP协议实现可靠的数据传输
- C# 高性能 TCP 服务的多种实现方式Cowboy.Sockets
- 利用OleDb方式对DataSet 和 Excel 数据快速导入导出
- 高性能数据库的访问,java程序员心中永远的痛(JDBC访问数据库的4中方式及数据库连接池中间件的设计和实现)(1)
- jQuery实现异步获取json数据的2种方式
- Parcelable 与Serializable(两种序列化方式用于传输非基本类型的数据)
- 数据结构模版----单链表实现方式总结