第八章数据访问概述

数据绑定控件有以下几种:

BulletedList------------列表项

CheckBoxList-----------复选框列表

DropDownList

ListBox

ReadioButtonList

以上控件是通过DataSourceId和DataSource控件进行联系的。

*** 可以显示一组数据

GridView 在html表格中显示一组记录。

DataList(可以在一行中显示多条记录)

Reapter 使用模板显示一组记录。它不会自动呈现一个html表格。

*** 以下控件一次显示一个数据项

detailView 在html表格中显示一个数据项

Formview 使用模板来显示一个数据项。

***

几种DataSouce的使用方法

*** SqlConnectionStringBuilder 格式化连接字符串。同时可以修改一些参数。

Code


***

SqlDataSource可以配置 ProviderName="System.Data.OracleClient",连接oracle数据库,连接Oracle数据请先安装Oracle客户端。

***

在web.config里面保存数据库连接字符串。

使用<%$ ConnectionStrings:Movies%>在DataSource中表示连接字符串。

如下

 <asp:SqlDataSource

        id="srcMovies"

        SelectCommand="SELECT * FROM Movies"

        ConnectionString="<%$ ConnectionStrings:Movies %>"

        Runat="server" />

***执行存储过程

SelectCommandType

UpdateCommandType

来执行存储过程

***表达式过滤器

  < asp:SqlDataSource

        id
= " srcMovies "

        SelectCommand
= " SELECT Id,Title,Director,DateReleased 

            FROM Movies
"

        FilterExpression
= " Title LIKE '{0}%' "

        ConnectionString
= " <%$ ConnectionStrings:Movies %> "

        Runat
= " server " >

        
< FilterParameters >

            
< asp:ControlParameter Name = " Title "  ControlID = " txtTitle "   />     

        
</ FilterParameters >

</ asp:SqlDataSource >


***DataSouce检索大量数据

可以设置 DataSourceMode="DataReader"

***处理DataSouce异常

比如查询异常

在DataSouce的属性中添加事件处理程序,onselected="selecterror"

Protected  void  selecterror( object  sender,SqlDataSouceStatusEventArgs e)

{

If (e.Exceptin !
=   null )

e.ExceptionHandled 
=   true ;

//

}


第二种方法是在数据绑定事件里进行处理。

***取消sql的执行或在执行前加入条件判断

通过处理以下的事件

Deleting

Filtering

Inserting

Selecting

Updating

在这些事件 参数 e,包含此命令的相关信息。

***使用asp.net参数对象

   < UpdateParameters >

          
< asp:Parameter Name = " title "  Type = " String "  Size = " 100 "  DefaultValue = " untitled "   />

          
</ UpdateParameters >

*** 可以使用ControlParameter 利用page对象的属性,来获取page对象的属性。


  
< InsertParameters >

            
< asp:ControlParameter Name = " IPAddress "  ControlID = " __page "  

                PropertyName
= " IPAddress "   />     

</ InsertParameters >


**** 对于FormParameter

if (Request.Form["addmovie"] != null)

                srcmovies.Insert();

***对于DataGridView中的连接

<asp:HyperLinkField 

            DataTextField="Title" 

            DataNavigateUrlFields="Id"

            DataNavigateUrlFormatString

            ="ShowQueryStringParameterDetails.aspx?id={0}" />

***通过程序执行SqlDataSource命令

1.添加ADO.NET参数

Protected void srcGuestBook_Inserting(object sender,SqlDataSourcecommadEventSr e)

{

E.command.parameters.Add(new SqlParameter("@name",User.Identity.Name));

}

2.执行insert,update 和 delete命令

 Insert ,delete,update

protected   void  btnAddEntry_Click( object  sender, EventArgs e)

    {

        srcGuestBook.InsertParameters[
" Name " ].DefaultValue  =  txtName.Text;

        srcGuestBook.InsertParameters[
" Comments " ].DefaultValue  =  txtComments.Text;

        srcGuestBook.Insert();

}


3.执行select命令

 

    //  Get the Id of the image to display

        
string  imageId  =  context.Request.QueryString[ " Id " ];

        

        
//  Use SqlDataSource to grab image bytes

        SqlDataSource src 
=   new  SqlDataSource();

        src.ConnectionString 
=  WebConfigurationManager.ConnectionStrings[ " Images " ].ConnectionString;

        src.SelectCommand 
=   " SELECT Image FROM Images WHERE Id= "   +  imageId;


        
//  Return a DataView

        

        DataView view 
=  (DataView)src.Select(DataSourceSelectArguments.Empty);

        context.Response.BinaryWrite( (
byte [])view[ 0 ][ " Image " ]);

***如何从数据库把图片显示在网页上,在主页面中做一个链接,链接到一个httphandler,在此处理程序中输出图片。

***利用缓存

EnableCaching

CacheDuration

你可能感兴趣的:(数据)