• ASP.NET 2.0 绑定高级技巧


    1.简单数据绑定定


    <%# DataBinder.Eval(Container.DataItem, "Price") %>

    <%# Eval("Price") %>

    <%# XPath("Price") %>

    2.数据源控件

    控件名                                     控件描述
    SqlDataSource                      
    一切支持SQL语句的数据源控件
    AccessDataSource               Access
    数据源控件
    XmlDataSource                     XML
    数据源控件
    ObjectDataSource               
    自行编写组件的数据源控件
    SiteMapDataSource            
    页面导航控件的数据源控件

    2.1 SqlDataSource关键属性

    名称                                               描述
    ConnectionString                       
    连接数据库的连接字符串
    SelectCommand                          
    用于执行查询的命令
    InsertCommand                          
    用于执行插入的命令
    UpdateCommand                       
    用于执行更新的命令
    DeleteCommand                         
    用于执行删除的命令
    DataSourceMode                       
    指定数据源类型是DataSet DataReader( 默认值= DataSet)
    ProviderName                             
    指定供应商(默认值= SQL Server .NET provider)

    2.2 SqlDataSource 支持通过以下属性进行数据缓存

    属性名                                         描述
    EnableCaching                          
    指定是否打开缓存(默认值= false)
    CacheDuration                          
    指定结果被缓存多少妙

    CacheExpirationPolicy             
    指定缓存间隔是sliding 还是absolute
    CacheKeyDependency            
    使缓存依赖于一个特定键值

    SqlCacheDependency              
    使缓存依赖于一个特定数据库实体

    2.3 参数化命令  XxxParameter 类型指定参数来源

    名称                                      描述
    SelectParameters               
    为查询命令指定参数
    InsertParameters               
    为插入命令指定参数
    UpdateParameters             
    为更新命令指定参数
    DeleteParameters              
    为删除命令指定参数
    FilterParameters                
    为过滤器命令指定参数

    2.4 XxxParameter 类型

    名称                                               描述
    ControlParameter                        
    指定一个源自于控件的参数
    CookieParameter                         
    指定一个源自于cookie的参数
    FormParameter                            
    指定一个源自于表单的参数
    ProfileParameter                          
    指定一个源自于profile的参数
    QueryStringParameter                
    制定于一个来源于查询字符串的参数
    Parameter                                     
    为数据源绑定一个参数
    SessionParameter                       
    指定一个源自于session的参数

    2.5 使用ControlParameter例子


    ConnectionString="server=localhost;database=northwind;"
    SelectCommand="select distinct country from customers order by country" />

    ConnectionString="server=localhost;database=northwind;"
    SelectCommand="select * from customers where country =@Country">


    PropertyName="SelectedValue" />



    SelectCommand="proc_GetCountries" />

    ConnectionString="server=localhost;database=northwind;"
    SelectCommand="proc_GetCustomers">


    PropertyName="SelectedValue" />



    DataTextField="country" AutoPostBack="true" RunAt="server" />

    CREATE PROCEDURE proc_GetCustomers
    @Country nvarchar(32) AS
    SELECT * FROM Customers
    WHERE Country = @Country
    GO
    CREATE PROCEDURE proc_GetCustomers
    CREATE PROCEDURE proc_GetCountriesAS
    SELECT DISTINCT Country
    FROM Customers
    ORDER BY Country
    GO

    3.XmlDataSource 使用XML 作为数据源
    支持缓存与XSL 转换,只支持查询绑定,不支持更新



    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在 元素中声明高可定制的用户界面gridView 列类型:

    名称                                              描述
    BoundField                                
    显示数据库中取出的文本
    ButtonField                                
    显示按钮
    CheckBoxField                          
    使用check boxes显示一个boolean型变量
    HyperLinkField                         
    显示一个超链接
    TemplateField                           
    显示一个自定义的HTML模板
    CommandField                         
    显示一个查询或者编辑按钮
    ImageField                                
    显示一个图片

    6. 冲突判定

    先入胜利
    如果数据在取出之后被改变,则修改失败
    UpdateCommand
    结构构成指定ConflictDetection=“CompareAllValues”来实现
    后入胜利
    无论数据是否被修改,该修改都会成功
    UpdateCommand
    结构构成指定ConflictDetection=“OverwriteChanges”来实现

    6.1 先入胜利法则更新


    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">







    DataKeyNames="EmployeeID" AutoGenerateEditButton="true" />

    7.错误检测
    数据更新后控件调用的事件GridView.RowUpdatedDetailsView.ItemUpdatedSqlDataSource.Updated, etc.
    处理“status”的事件,无论数据库是否异常允许数据库异常被处理或者再次抛弃,显示多少数据库行被修改处理更新错误


    UpdateCommand="" onUpdated="OnUpdateComplete">

    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
    }

  • 相关阅读:
    C# SqlTransaction事务,先从后主
    去除HTML标记
    GIT拉取问题
    QQ音乐API
    解决UEditor编辑器禁用时点击文本编辑器会多加一个字符问题
    UEditor编辑器增加placeholder提示
    C# List去重及优化建议
    ref和out解析
    时间标准格式转换及数值的ToString的格式化
    没有被“怼”,顺利通过华为Android三面,看看面试官都问了我什么?
  • 原文地址:https://www.cnblogs.com/liufei88866/p/1640081.html
Copyright © 2020-2023  润新知