SqlDataSource概论

SqlDataSource就像代码生成器,你只要定义好所需的sql语句,就能方便从数据库提取数据到.net。

你定义的最常见sql语句是select * from table where id=@id

而@id可以从1.控件参数,例如textbox.text;2.窗体参数,例如网页中的某个HTML Input的value值;3.web.config里面的配置参数;4.session和cookie参数;5.查询字符串参数;6.当然你也可以在.aspx.cs文件里自定义参数。

那么post传递的参数呢?暂时不知道。

既然可以从sql语句提取查询结果,那么也可以从存储过程中提取查询结果。当然少不了和存储过程的输入和输出参数相配套的操作接口,以及受影响的行数返回。

 

SqlDataSource有个CancelSelectOnNullParameter属性。它的使用效果如:

select * from table where (id=IsNull(@id,id))表示,如果没有设置@id的参数,则最终执行select * from table。

 

SqlDataSource有个DataSourceMode 属性,它就两个属性值DataSet和DataReader。

设置成DataReader,读取数据库快速,只限于读取。因为DataReader读取的数据,不会保持在内存中。

设置成DataSet,GridView这些数据绑定控件,就可以方便设置分页,排序,增删改功能。

 

SqlDataSource有个筛选属性,FilterExpression。

原理是,把数据库的数据加载到内存中,根据筛选条件,直接在内存中筛选。

因此,设置DataSourceMode为DataSet,设置缓存属性。

 

还有就是SqlDataSource执行错误的Sql语句(比如查询不存在的表),或者其它错误,的处理办法。

根据SqlDataSource的Selected事件,和e.Exception来判断。

 

当有SqlDataSource执行错误时,或者执行参数不对,要取消SqlDataSource的执行,用e.Cancel属性。

 

最后就是SqlDataSource的缓存属性,可以设置缓存几秒,以及两种缓存策略。

 

总结:引入可视化操作机制,使数据库操作更便捷;引入事件机制,来使数据库操作可可靠。引入缓存机制提升读取数据性能。

可视化操作机制包括,带参数的增删查改和带输入和输出参数的存储过程。

事件机制包括,操作前,操作后的验证,数据类型转换,取消操作。

缓存机制包括,提升数据读取性能,便于筛选,便于数据绑定控件操作。

posted @ 2011-09-05 17:28  草珊瑚  阅读(811)  评论(0编辑  收藏  举报