第6章数据访问和表示内容ASP.NET的数据访问模型数据源控件和数据绑定控件数据绑定和数据提供程序数据访问的安全性ASP.NET的数据访问模型关系数据库和数据存储ASP.NET的数据访问原理和基本技术数据存储数据提供程序数据操作层Web应用程序层数据源控件和数据绑定控件基本的关系型数据访问使用DetailsView编辑数据其他数据源对象和数据控件基本的关系型数据访问通过SqlDataSource及GridView访问和显示数据演示和练习:在GridView中显示查询结果在GridView中编辑和删除数据在数据源控件中使用参数演示和练习:通过存储过程访问数据使用AccessDataSource访问数据库通过SqlDataSource及GridView访问和显示数据使用VisualStudio配置基本的数据访问连接串的处理数据显示设置使用VisualStudio配置基本的数据访问通过SqlDataSource和数据绑定控件连接到数据库使用SqlDataSource控件连接到SQLServer数据库添加并配置用于显示数据的数据绑定控件使用VisualStudio配置基本的数据访问定义数据源绑定数据到ListBoxasp:SqlDataSourceid=SqlDataSource1runat=serverDataSourceMode=DataReaderConnectionString=%$ConnectionStrings:NorthwindConnectionString1%SelectCommand=SELECTLastNameFROMEmployeesProviderName=%$ConnectionStrings:NorthwindConnectionString1.ProviderName%/asp:SqlDataSourceasp:ListBoxid=ListBox1“runat=server“DataTextField=LastNameDataSourceID=SqlDataSource1/asp:ListBox连接串的处理在Web.config中保存连接串方便管理和数据库的变更在程序中引用连接串连接串的处理Web.config配置信息在代码中使用连接字符串connectionStringsaddname=AdvWorksconnectionString=Server=MySQLSever;Database=AdventureWorks;IntegratedSecurity=SSPI;PersistSecurityInfo=True“providerName=System.Data.SqlClient//connectionStringsstringmyDataString=ConfigurationManager.ConnectionStrings[AdvWorks].ConnectionString;System.Data.SqlClient.SqlConnectionsqlConn=newSystem.Data.SqlClient.SqlConnection(myDataString);sqlConn.Open();数据显示设置自定义用户界面自定义列排序分页缓存筛选自定义用户界面使用“自动套用格式”选择“智能标记”菜单中的“自动套用格式”在系统弹出的“自动套用格式”对话框中的“选择方案”列表中选择合适的样式,可以通过“预览”部分查看所选择的格式的效果单击“应用”及“确定”按钮设置GridView相关属性AlternatingRowStyleEditRowStyleEmptyDataRowStyleFooterStyleHeaderStylePagerStyleRowStyleSelectedRowStyleShowFooterShowHeader自定义列需要对GridView列数据显示进行单独控制的时候使用使用方式在源视图中直接加入代码创建模板在模板中绑定数据通过图形化界面进行设计新增模板对模板进行编辑和设计Columnsasp:BoundFieldDataField=EmployeeIDHeaderText=EmployeeIDReadOnly=true/asp:BoundFieldDataField=FirstNameHeaderText=FirstName/asp:BoundFieldDataField=LastNameHeaderText=LastName/asp:TemplateFieldHeaderText=BirthDateItemTemplateasp:LabelID=BirthDateLabelRunat=ServerText='%#Eval(BirthDate,{0:d})%'//ItemTemplateEditItemTemplateasp:CalendarID=EditBirthDateCalendarRunat=ServerVisibleDate='%#Eval(BirthDate)%'SelectedDate='%#Bind(BirthDate)%'//EditItemTemplate/asp:TemplateField/Columns排序启用排序通过“智能标记”--〉“启用排序”菜单启用对SortExpression属性进行赋值注意事项GridView的排序功能依赖于DataSource的排序功能GridView控件不检查数据源控件是否支持排序如果SqlDataSource和AccessDataSource控件的DataSourceMode属性设置为DataSet,或SortParameterName属性设置为DataSet或DataReader,则这两个控件可以排序如果ObjectDataSource控件的SortParameterName属性设置为基础对象所支持的属性值,则该控件可以排序分页避免大量返回数据时影响系统响应速度设置分页通过“智能标记”或属性设置相关属性:AllowPaging+分页模式(NextPrevious,NextPreviousFirstLast,Numeric,NumericFirstLast)分页支持方式在界面级别支持分页,如使用ObjectDataSource作为数据源控件先从源获取所有数据记录,仅显示当前页的记录,然后丢弃剩余的记录缓存缓存不频繁变化的数据,提高系统性能设置方式SqlDataSource控件的DataSourceMode属性设置为DataSetSqlDataSource控件的EnableCaching属性设置为true其他相关属性CacheExpirationPolicyCacheDuration……asp:SqlDataSourceid=SqlDataSource1“runat=serverConnectionString=%$ConnectionStrings:NorthwindConnectionString1%EnableCaching=TrueCacheDuration=20SelectCommand=SELECTEmployeeID,FirstName,LastName,TitleFROMEmployeesProviderName=%$ConnectionStrings:NorthwindConnectionString1.ProviderName%/asp:SqlDataSource筛选需要对结果数据进行过滤启用筛选配置数据源控件,启用缓存设置简单FilterExpression表达式FilterExpression=country='Germany'使用带参数的FilterExpression表达式FilterExpression=country='{0}'ANDcity='{1}'定义FilterParameters属性asp:SqlDataSourceID=SqlDataSource2runat=serverConnectionString=%$ConnectionStrings:NorthwindConnectionString%SelectCommand=SELECTProductID,ProductName,SupplierID,CategoryID,QuantityPerUnit,UnitPrice,UnitsInStock,UnitsOnOrder,ReorderLevel,DiscontinuedFROMProducts!--定义缓存--CacheExpirationPolicy=SlidingCacheKeyDependency=20EnableCaching=True!--定义筛选表达式--FilterExpression=CategoryID='{0}'CacheExpirationPolicy=SlidingCacheKeyDependency=20!--定义参数--FilterParametersasp:ControlParameterControlID=DropDownList1Name=CategoryIDPropertyName=SelectedValue//FilterParameters/asp:SqlDataSource演示和练习:在GridView中显示查询结果多媒体演示在GridView中编辑和删除数据启用内置编辑功能将AutoGenerateEditButton或AutoGenerateDeleteButton属性设置为true添加一个CommandField,将其ShowEditButton或ShowDeleteButton属性设置为true创建一个TemplateField,其中ItemTemplate包含多个命令按钮,要进行更新时可将CommandName设置为“Edit”,要进行删除时可设置为“Delete”。在数据源控件中使用参数使用参数,可以方便地完成下列操作:提供用于数据检索的搜索条件提供要在数据存储区中插入、更新或删除的值提供用于排序、分页和筛选的值使用参数的方法定义参数SELECTEmployeeID,LastName,FirstNameFROMEmployeesWHEREEmployeeID=@EmpID在Parameters属性中引用参数SelectParametersasp:ParameterName=EmpIDType=Int32DefaultValue=0//SelectParameters演示和练习:通过存储过程访问数据多媒体演示使用AccessDataSource访问数据库连接MicrosoftAccess数据库AccessDataSource控件继承了SqlDataSource类并用DataFile属性替换了ConnectionString属性主要步骤使用AccessDataSource控件连接到数据库定义AccessDataSource的Sql命令属性不能使用命名参数,所以必须确保参数集合中参数的顺序与SQL语句或MicrosoftAccess查询中参数占位符的顺序一致asp:AccessDataSourceid=EmployeesAccessDataSourceDataFile=~/App_Data/Northwind.mdb“runat=serverSelectCommand=SELECTEmployeeID,FirstName,LastNameFROMEmployees/使用DetailsView编辑数据使用DetailsView对数据进行插入、修改和删除启用DetailsView内置编辑功能AutoGenerateEditButton:启用编辑