3.XmlDataSource 使用XML 作为数据源
支持缓存与XSL 转换,只支持查询绑定,不支持更新
<asp:XmlDataSourceID="Rates" DataFile="Rates.xml" RunAt="server" />
<asp:TreeViewID="MyTreeView" DataSourceID="Rates" RunAt="server" />3.1 XmlDataSource的关键属性
名称 描述
DataFile XML 数据文件的路径
TransformFile 含有XSL 风格定义的数据文件路径
EnableCaching 指定是否开启cache (默认值= false)
XPath XPath 表达式用来确认数据
CacheDuration 以秒为单位的时间间隔
CacheExpirationPolicy 指定时间间隔是sliding 还是absolute
CacheKeyDependency 创建缓存依存于某个键

4. ObjectDataSource
从数据组件绑定数据,提供中间件的数据绑定,使数据访问和UI脱离,两种数据绑定方式
SelectMethod, InsertMethod, UpdateMethod,and DeleteMethod
可选择是否使用缓存,可选择是否使用参数
4.1 ODS 关键属性
ODS 关键属性
名称 描述
InsertParameters 指定插入方法参数
UpdateParameters 指定更新方法参数
DeleteParameters 指定删除方法参数
SelectParameters 指定查询方法参数
CacheDuration 缓存间隔时间以秒为单位
SqlCacheDependency 基于某个数据实体的缓存
创建和清除
ObjectDataSource.SelectMethod 可以使用静态方法也可以使用一个类的新实例
如果使用实例方法:ODS 在每次调用的时候创建一个新实例类必须具有公共的建构函数
使用ObjectCreated 和ObjectDisposing 元素可以初始化和撤销函数 5.增强的DataGrid 控件
支持复杂的数据单元格类型,包括CheckBoxFields在<Columns> 元素中声明高可定制的用户界面
gridView 列类型:
名称 描述
BoundField 显示数据库中取出的文本
ButtonField 显示按钮
CheckBoxField 使用check boxes显示一个boolean型变量
HyperLinkField 显示一个超链接
TemplateField 显示一个自定义的HTML模板
CommandField 显示一个查询或者编辑按钮
ImageField 显示一个图片 6. 冲突判定
先入胜利
如果数据在取出之后被改变,则修改失败
UpdateCommand结构构成指定ConflictDetection=“CompareAllValues”来实现
后入胜利
无论数据是否被修改,该修改都会成功
UpdateCommand结构构成指定ConflictDetection=“OverwriteChanges”来实现 6.1 先入胜利法则更新
<asp:SqlDataSourceID="Employees" RunAt="server"
ConnectionString="server=localhost;database=northwind;"
SelectCommand="select employeeid, lastname, firstnamefrom employees"
UpdateCommand="update employees set lastname=@lastname, firstname=
@firstnamewhere employeeid=@original_employeeid and lastname=
@original_lastnameand firstname=@original_firstname"
ConflictDetection="CompareAllValues">
<UpdateParameters>
<asp:ParameterName="EmployeeID" Type="Int32" />
<asp:ParameterName="lastname" Type="String" />
<asp:ParameterName="firstname" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:GridViewDataSourceID="Employees" Width="100%" RunAt="server"
DataKeyNames="EmployeeID" AutoGenerateEditButton="true" /> 7.错误检测
数据更新后控件调用的事件GridView.RowUpdated,DetailsView.ItemUpdated,SqlDataSource.Updated, etc.
处理“status”的事件,无论数据库是否异常允许数据库异常被处理或者再次抛弃,显示多少数据库行被修改
处理更新错误
<asp:SqlDataSourceID="Employees" RunAt="server"
UpdateCommand="" OnUpdated="OnUpdateComplete">

</asp:SqlDataSource>

void OnUpdateComplete (Object source, SqlDataSourceStatusEventsArgse)
{
if (e.Exception!= null) {
// Exception thrown. Set e.ExceptionHandledto true to prevent
// the SqlDataSourcefrom throwing an exception, or leave it set
// to false to allow SqlDataSourceto rethrowthe exception
}
else if (e.AffectedRows== 0) {
// No exception was thrown, but no records were updated,either.
// Might want to let the user know that the update failed
}
}
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=800944