SqlDataSource控件,由四个精微空间构成:
1,向导。2,属性。3,控件属性代码。4,后台代码。
1,向导:就是下一步->下一步->完成。
数据库连接字符串->自定义sql语句或存储过程->指定where语句的参数来源。
数据库连接字符串->选择表->选择列->配置where语句,orde rby语句,生成insert,update,delete语句->指定where语句的参数来源。(这是图形化操作)
向导的每一步操作,都会生成控件属性代码。
2,属性:一张属性列表,然后你配置。
向导能实现的,属性也能实现,而且实现得更多。 包括缓存,取到值是null或取不到值,数据冲突,DataReader或DataSet,以及视图状态。
属性的操作,同时生成控件属性代码。
3,控件属性代码:HTML有源代码,asp.net控件也有源代码。
4,后台代码: 控件属性代码能实现的,后台代码都能实现,而且实现得更多。比如用SqlDataSource控件,不用数据绑定控件,显示二进制数据的图像。后台代码往往使用SqlDataSource控件的事件,处理各种问题,比如控件属性代码里没声明sql查询语句参数,可在后台代码添加一个sql查询语句的参数。
-----------------------------------------------------------------
编程实现>ASP.NET 3.5开发范例精讲精析>探讨SqlDataSource控件>向导>指定参数
都是sql语句的查询,删除,插入,更新都需要参数,用来定位。参数来源:
asp.net控件,用户设置文件web.config,查询字符串,会话session,cookie,后台代码自定义参数。
-----------------------------------------------------------------
编程实现>ASP.NET 3.5开发范例精讲精析>探讨SqlDataSource控件>属性>CancelSelectOnNullParameter属性
下拉列表,没选择任何数据,但把所有数据都查出来。
sql的查询语句需要参数,你给它空字符串,那SqlDataSource控件获取到的参数是null,SqlDataSource就不执行查询语句。
你要执行的话,设置 CancelSelectOnNullParameter属性为false,然后再改写sql语句。
-----------------------------------------------------------------
编程实现>ASP.NET 3.5开发范例精讲精析>探讨SqlDataSource控件>属性>DataSourceMode属性
DataSourceMode属性有两个选择,一是DataReader,二是DataSet。 DataReader速度快,不支持缓存,分页与动态排序。DataSet支持缓存,分页与动态排序,但速度慢。本质上,DataReader取得的数据不保存在服务器内存,但DataSet会。
-----------------------------------------------------------------
编程实现>ASP.NET 3.5开发范例精讲精析>探讨SqlDataSource控件>属性>使用FileterExpression属性筛选数据
把所需数据读出用有两种方式。一,直接在sql查询语句设定where=什么就好。二,sql查询语句是所有都查出来,用FileterExpression属性筛选。所以第二种方式,要DataSet,缓存,参数。
第二种方式的优点就是:频繁筛选其他条件,速度快。但如果不筛选其他条件,显然浪费速度。
-----------------------------------------------------------------
编程实现>ASP.NET 3.5开发范例精讲精析>探讨SqlDataSource控件>后台代码>处理sql命令执行错误
人在江湖飘,哪有不挨刀。程序也不例外。如何捕捉 SqlDataSource控件异常(比如sql语句中查询了不存在的表),只需在SqlDataSource控件的Selected(或者插入,更新,删除语句)事件处理函数里编写异常判断捕捉代码即可。还要告诉编译器,异常已由我自行处理,也就是ExceptionHandled属性设置成true。
-----------------------------------------------------------------
编程实现>ASP.NET 3.5开发范例精讲精析>探讨SqlDataSource控件>后台代码>取消sqldatasource控件的执行
执行sqldatasource前,验证参数是否符合要求,不符合,则取消执行。
在后台代码中,在事件中编写代码来判断参数的正确与否。有五种事件,查,增,删,改,筛选(Filtering)