Welcome 微信登录

首页 / 网页编程 / ASP.NET / ASP.NET 2.0数据教程之四十九:使用SqlDataSource插入、更新以及删除数据

ASP.NET 2.0数据教程之四十九:使用SqlDataSource插入、更新以及删除数据2010-08-11 翻译:cnblogs Reeezak返回“”

导言

在概述插入、更新和删除数据中我们讨论过,GridView控件提供 了内建的更新与删除功能,而DetailsView和FormView控件除了这些之外还拥有插 入功能。这些数据修改功能可以直接接入到数据源控件中而不需要编写任何代码 。概述插入、更新和删除数据讲解了如何使用ObjectDataSource来帮助GridView 、DetailsView以及FormView控件完成插入、更新以及删除操作。 ObjectDataSource能工作的地方,SqlDataSource也行。

回忆一下,要使 ObjectDataSource支持插入、更新和删除功能,我们需要定义一些用以执行插入 、更新和删除动作的对象层方法。而在SqlDataSource中,我们则需要提供INSERT 、UPDATE以及DELETE语句(或存储过程)。正如我们将要在本节教程中看到的那 样,这些语句可以手工创建,也可以通过SqlDataSource的“配置数据源 ”向导自动生成。

注意:由于我们已经讨论过了GridView、 DetailsView以及FormView控件的插入、编辑和删除功能,本教程中我们将重点讨 论如何配置SqlDataSource以使其支持这些操作。如果你需要温习一下如何在 GridView、DetailsView以及FormView中实现这个功能,请回到“编辑插入 和删除数据”的章节,从概述插入、更新和删除数据开始。

第一步 :指定INSERT、UPDATE以及DELETE语句

就像我们在上两节教程中看到的那 样,要从SqlDataSource控件中获取数据,我们需要设置两个属性:

1.ConnectionString,它指定了查询应该发送到的那个数据库;

2.SelectCommand,它指定了用于返回记录的SQL语句或存储过程。

对于带参 数的SelectCommand,其参数值通过SqlDataSource的SelectParameters集合来进 行指定,可以包含硬编码值和通用参数源(比如QueryString、Session、Web控件 等等),也可以通过编程的方式来对其进行赋值。当SqlDataSource控件的 Select()方法被调用时(无论是通过编程来调用或是由数据Web控件自动调用), 一个数据库连接将被建立,然后参数值被赋值给查询,然后command被发送到数据 库。结果将以DataSet或DataReader的形式返回,具体的返回形式取决于这个控件 的DataSourceMode属性的值。

除了获取数据之外,SqlDataSource还可以 以非常相似的办法通过提供INSERT、UPDATE以及DELETE语句来插入、更新以及删 除数据。只需简单的给InsertCommand、UpdateCommand以及DeleteCommand属性赋 上INSERT、UPDATE以及DELETE语句就可以了。如果语句带有参数(这也是常有的 事),把这些参数放到InsertParameters、UpdateParameters以及 DeleteParameters集合里就可以了。

一旦InsertCommand、UpdateCommand 或DeleteCommand的值被指定,相应数据Web控件的智能标签中的“允许插入 ”、“允许编辑”或“允许删除”选项将会变为可用 。为了说明这个问题,我们就以在教程使用SqlDataSource 控件查询数据中创建 的Querying.aspx为例,给它加上删除功能。

首先从SqlDataSource文件夹 中打开InsertUpdateDelete.aspx和Querying.aspx。在Querying.aspx的设计器中 选择第一个例子中的SqlDataSource和GridView(就是ProductsDataSource和 GridView1)。选好了这两个控件之后,在“编辑”菜单中选择 “复制”(或者直接Ctrl+C)。然后,到InsertUpdateDelete.aspx的 设计器中,并将这两个控件粘贴上去。将这两个控件弄到 InsertUpdateDelete.aspx上之后,在浏览器中测试一下这个页面。你应该看到 Products表中所有记录的ProductID、ProductName以及UnitPrice。

图一:所有的产品都列出来了,并以ProductID 进行了排序