利用数据源控件在 Repeater 中实现删除数据


利用数据源控件在 Repeater 中实现删除数据 数据源控件是在 ADO.NET 的基础上进行封装,以达到快速开发的目地。.net 提供的数 据控件分为数据源控件和数据绑定控件,数据源控件主要负责数据的连接、数据的增删改查; 数据绑定控件主要负责数据的显示。 常用数据源控件: 控件名称 说明 SqlDataSource 可以连接到 ADO.NET 支持的任何 SQL 数据库 AccessDataSource 连接到使用 Microsoft Office 创建的 Access 数据库 ObjectDataSource 连接到应用程序的 Bin 或 App_Code 目录中的中间层业务对象 或数据集 XmlDataSource 连接到 XML 文件 SitemapDataSource 连接到此应用程序的站点导航树(要求应用程序根目录处有一个 有效的站点地图文件,默认的文件名为“Web.sitemap”),站点地图 文件其实也是一个 XML 文件 LINQDataSource .NET 3.0 新增,可以访问各种类型的数据,包括数据库和 XML 文件。与 C#/VB.NET 等.NET 语言直接集成 常用数据绑定控件: 控件名称 说明 GridView 以表格的方式显示和编辑数据 DetailsView 一次显示、编辑、插入或删除一条记录。默认情况下,DetailsView 控件将记录的每个字段显示在它自己的一行内 FormView FormView 控件与 DetailsView 控件相似,一次也只能显示或编 辑一条记录。FormView 需要给其设定一个模板 DataList 控件可以用某种用户指定的格式来显示数据(比如分列显示), 这种格式由模板和样式进行定义 Repeater Repeater 控件没有包含内置的布局或样式,需要由 Web 开发者 指定所有的用于显示数据的内部控件和显示样式 ListView ASP.NET 3.5 新增,以嵌套容器模板和占位符的方式提供灵活的 数据显示模式 在数据绑定控件中,GridView等一些控件有自己模版,并且封装了删除、更新还有分页 的方法,可以通过一些配置来操作数据源。但是Repeater数据绑定控件没有自己的模版,对 数据的操作只有一个Repeater_ItemCommand一个事件方法。因此怎么在Repeater_ItemCommand方法 中利用数据源控件删除数据困扰了我一下午,要解决这个问题,我们首先来看数据源控件的代码: 1 4 5 7 8 同样的目地直接在 ADO.NET 里面的操作如下: Public bool del(int id)//声明删除方法,并且设置参数为 id { bool flag = false; SqlConnection conn = new SqlConnection(“连接字符串”); SqlCommand cmd = new SqlCommand(“DELETEFROM test1 WHERE id=”+id+””,conn); Conn.open(); int i= cmd.ExcuteNonQuery(); if(i!=0) { flag = true; } return flag; } 下面我们来分析数据源控件和 ADO.NET 的对应关系: 从数据源控件代码中我们可以很清楚的看到第1行首先声明了一个 并且为其设置了其ID="SqlDataSource1"可以理解这句话的意思是声 明一个名为SqlDataSource1的SqlConnection对象,如: SqlConnection SqlDataSource1; 第二行设置属性ConnectionString="<%$ ConnectionStrings:SqlDataSourceTestConnectionString % ConnectionString是在web.config中配置好了的 所以第2行的意思是将SqlDataSource1对象实例化,如: SqlDataSource1 = new SqlConnection(“WS-I-MYRONE-01\SQLEXPRESS;Initial Catalog=SqlDataSourceTest;Persist Security Info=True;User ID=sa;Password=**************”); 第3行DeleteCommand="DELETE FROM test1 WHERE(id = @id)"可以理解为声明并实例化一 个SqlCommand对象,如: SqlCommand cmd = new SqlCommand(“DELETEFROM test1 WHERE id = “+id+””); 第4行到第7行设置DeleteParameters属性,可以理解为执行预处理给SqlCommand赋值并执行 SqlCommand。 第5行到第7行是设置DeleteParameters的赋值方式、,SqlDataSources设置参数的方法如下: 参数类型 说明 ControlParameter 将参数设置为 ASP.NET 网页中的 Control 的属性值。 使用 ControlID 属性指定 Control。使用 ControlParameter 对象的 PropertyName 属性指定提供参数值的 属性的名称。 从 Control 派生的某些控件将定义 ControlValuePropertyAttribute,从而确定从 中检索控件值的默认属性。 只要没有显式设置 PropertyName 属性,就会使用默 认属性。 ControlValuePropertyAttribute 应用于以下控件属性: CalendarSelectedDate CheckBoxChecked DetailsViewSelectedValue FileUploadFileBytes GridViewSelectedValue LabelText TextBoxText TreeViewSelectedValue CookieParameter 将参数设置为 HttpCookie 对象的值。 使用 CookieName 属性指定 HttpCookie 对象的名称。 如果指定的 HttpCookie 对象不 S存在,则将使用 DefaultValue 属 性的值作为参数值。 注意 仅支持单值 Cookie。 FormParameter 将参数设置为 HTML 窗体字段的值。使用 FormField 属性指定 HTML 窗体字段 的名称。 如果指定的 HTML 窗体字段值不存在,则将使用 DefaultValue 属性的 值作为参数值。 ProfileParameter 将参数设置为当前用户配置文件 (Profile) 中的属性的值。 使用 PropertyName 属性指定配置文件属性的名称。 如果指定的配置文件属性不存在,则将使用 DefaultValue 属性的值作为参数值。 有关用户配置文件的信息,请参见 ASP.NET 配置文件属性概述。 QueryStringParameter 将参数设置为 QueryString 字段的值。 使用 QueryStringField 属性指定 QueryString 字段的名称。 如果指定的 QueryString 字段不存在,则将使用 DefaultValue 属性的值作为参数值。 SessionParameter 将参数设置为 Session 对象的值。 使用 SessionField 属性指定 Session 对象的 名称。 如果指定的 Session 对象不存在,则将使用 DefaultValue 属性的值作为 参数值。 理清楚 SqlDataSource 与ADO.NET 的对应关系后,下面就是在利用数据源控件在 Repeater 中实现删除数据 代码如下: 前台代码:
name pwd
后台事件处理: protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e) { if(e.CommandName=="del") { SqlDataSource1.DeleteCommand = "DELETEFROM test1 where id=" + e.CommandArgument.ToString(); SqlDataSource1.Delete(); } if (e.CommandName == "add") { TextBox1.Text = "add"+a; } } 删除事件是通过来触发的 在后台代码e.CommandName是为了得到按钮的CommandName属性的值,e. CommandArgument是为了得到 CommandArgument的值。 然后通过SqlDataSource1.DeleteCommand = "DELETEFROM test1 where id=" + e.CommandArgument.ToString(); 设置删除的Sql语句通过调用SqlDataSource1.Delete()方法来执行删除事件。
还剩4页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

caidachen

贡献于2013-02-06

下载需要 5 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf