第八章数据访问概述

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

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

posted on 2008-10-29 23:19  非法操作  阅读(214)  评论(0)    收藏  举报

导航