SqlCacheDependency 基于某个数据实体的缓存
创建和清除
ObjectDataSource.SelectMethod 可以使用静态方法也可以使用一个类的新实例
如果使用实例方法:ODS 在每次调用的时候创建一个新实例类必须具有公共的建构函数
使用ObjectCreated 和ObjectDisposing 元素可以初始化和撤销函数
5.增强的DataGrid 控件
支持复杂的数据单元格类型,包括CheckBoxFields在<Columns> 元素中声明高可定制的用户界面
gridView 列类型:
名称 描述
BoundField 显示数据库中取出的文本
ButtonField 显示按钮
CheckBoxField 使用check boxes显示一个boolean型变量
HyperLinkField 显示一个超链接
TemplateField 显示一个自定义的HTML模板
CommandField 显示一个查询或者编辑按钮
ImageField 显示一个图片6. 冲突判定
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
}
}