学习cnblogsGuestBook V2.0 --(2)
谈谈对“留言本”中数据库持久化对象实现的一些认识。
页面类中DetSet ds1 可以被看作是一个数据库持久化对象,
protected cnblogsGuestbook.ds ds1;
在页面的加载过程中,完成持久化对象的初始化和数据绑定,如:
private void Page_Load(object sender, System.EventArgs e)
{
///填充数据集
da.Fill(ds1);
//显示绑定后的显示页面
this.DataBind();
}
客户端对数据库的SUID(选择、编辑、插入、删除)操作,首先对持久化对象实施,然后再
da.Fill(ds1);
完成持久化对象与服务器端数据库的同步。这与V1.0 中每执行一次数据库插入都必须重新对数据库进行一次连接操作,完全不同。
对V2.0 中持久化对象的实现有以下疑问:
1、持久化对象DataSet是否可以被看作一个保存在客户端内存中的一份数据库副本?是的话,如果服务器端数据库表很大(比如执行select * from table),是否意味着DataSet的加载(绑定)是一个极其消耗客户端资源的过程?DataSet是否会变得很庞大?
2、在实际应用中会和许多数据库表单打交道,数据库表单分别对应于不同的类,通过对类实例的插入、删除等操作来实现相应的数据库表单的更新。如果要应用持久化对象的话,是否意味着需要在各个类里都添加一个DataSet属性?还有其他更好的方案吗?
3、希望在V3.0里看到“GuestBook”类,在该类中实现一些持久化的应用。
页面类中DetSet ds1 可以被看作是一个数据库持久化对象,
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](/Images/OutliningIndicators/None.gif)
对V2.0 中持久化对象的实现有以下疑问:
1、持久化对象DataSet是否可以被看作一个保存在客户端内存中的一份数据库副本?是的话,如果服务器端数据库表很大(比如执行select * from table),是否意味着DataSet的加载(绑定)是一个极其消耗客户端资源的过程?DataSet是否会变得很庞大?
2、在实际应用中会和许多数据库表单打交道,数据库表单分别对应于不同的类,通过对类实例的插入、删除等操作来实现相应的数据库表单的更新。如果要应用持久化对象的话,是否意味着需要在各个类里都添加一个DataSet属性?还有其他更好的方案吗?
3、希望在V3.0里看到“GuestBook”类,在该类中实现一些持久化的应用。
![](/Emoticons/emwink.gif)