更新datasource到数据库中

 我来答
xiangjuan314
2016-05-06 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2766万
展开全部
步骤1 :指定 INSERT 、UPDATE 和 DELETE 语句
正如我们在前面两个教程中所看到的,要想从SqlDataSource 控件检索数据,我们需要设置两个属性 :
ConnectionString ,用于指定向哪个数据库发送查询。
SelectCommand ,用于指定返回结果需要执行的 ad-hoc SQL 语句或者存储过程名称。
对于带参数的SelectCommand 值来说,参数值可通过SqlDataSource 的 SelectParameters 集合指定,可包含固定赋值、公用参数源值(查询字符串字段、会话变量、Web 控件值等),或者通过编码分配。调用 SqlDataSource 控件的 Select() 方法时(既可以通过编码调用,也可以从 Web 数据控件自动调用),将建立连接到数据库的连接,将参数值分配给查询,并且将命令转到数据库。根据控件的DataSourceMode 属性值,结果随后可能作为 DataSet 返回,也可能作为 DataReader 返回。
SqlDataSource 控件不仅可以选择数据,还可以采用完全相同的方式,通过支持INSERT 、UPDATE 和 DELETE SQL 语句用于插入、更新和删除数据。只需分配要执行的INSERT 、UPDATE 和 DELETE SQL 语句的 InsertCommand 、 UpdateCommand 和DeleteCommand 属性。如果语句带有参数(它们中大大多数均带有参数),请将它们包含到 InsertParameters 、UpdateParameters 和 DeleteParameters 集合中。
一旦指定了InsertCommand 、UpdateCommand 或DeleteCommand 值,相应的 Web 数据 控件的智能标记中的 “Enable Inserting” 、“Enable Editing” 或者 “Enable Deleting” 将变为可用选项。为了说明这一点,我们需要从 Querying.aspx 页面中举一个在 使用 SqlDataSource 控件查询数据 教程中创建的例子,并将其扩充为包含删除能力。
首先,从SqlDataSource 文件夹中打开 InsertUpdateDelete.aspx 页面和Querying.aspx 页面。在 Querying.aspx 页面的设计器上,从 第一个示例中选择 SqlDataSource 和 GridView(ProductsDataSource 和 GridView1 控件)。选择两个控件之后,转到 Edit 菜单,并选择 Copy (或者按下 Ctrl+C )。接下来,转到InsertUpdateDelete.aspx 页面上的设计器,并粘贴到控件中。在将两个控件移动到InsertUpdateDelete.aspx 之后,请在浏览器中测试页面。将在 Products 数据库表中看到所有记录的 ProductID 、 ProductName 和 UnitPrice 值。

图1 :按 ProductID 的顺序列出所有产品
添加 SqlDataSource 的DeleteCommand 和DeleteParameters 属性
此时,我们已经获得了从Products表返回所有记录的SqlDataSource ,以及显示此数据的 GridView 。我们的目标是将此示例扩展为用户可以通过 GridView 删除产品。要完成此目标,我们需要指定SqlDataSource 控件的 DeleteCommand 和DeleteParameters 属性值,然后将GridView 配置为支持删除。
DeleteCommand 和 DeleteParameters 属性可通过多种方式指定:
通过声明式语法指定
从设计器中的 Properties 窗口指定
从Configure Data Source 向导的“Specify a custom SQL statement or stored procedure" 屏幕指定
从Configure Data Source 向导的“Specify columns from a table of view” 屏幕中的Advanced 按钮来指定,实际上,它将自动生成DeleteCommand 和 DeleteParameters 属性中使用的 DELETE SQL 语句和参数集
下面,我们将探讨如何在步骤2 中自动创建 DELETE 语句。现在,尽管 Configure Data Source 向导或者声明式语法选项均可工作,但我们将在设计器中使用 Properties 窗口。
在InsertUpdateDelete.aspx 页面中的设计器中,单击 ProductsDataSource SqlDataSource ,随后屏幕上将显示 Properties 窗口(从 View 菜单选择Properties 窗口,或者单击F4 )。选择 DeleteQuery 属性,屏幕上将显示省略号。

图2 :从 Properties 窗口选择 DeleteQuery 属性
注意:SqlDataSource 没有 DeleteQuery 属性。并且,DeleteQuery 是 DeleteCommand 和 DeleteParameters 属性的组合,仅在使用 设计器 查看窗口Properties 窗口时才被列出。如果您的 Source 视图中查看 Properties 窗口,您会看到 DeleteCommand 属性。
DeleteQuery 属性中单击省略号,屏幕将显示Command and Parameter Editor 对话框(见图 3)。在此对话框中,您可以指定DELETE SQL 语句和参数。在DELETE 命令文本框中输入下列查询(既可以手动输入,也可以使用Query Builder 输入,如果您愿意的话)。
DELETE FROM Products WHERE ProductID = @ProductID
接下来,单击 Refresh Parameters 按钮,向下面的参数列表中添加 @ProductID 参数。

图3 :从 Properties 窗口选择 DeleteQuery 属性
请不要为此参数赋值(保留其参数源为 “None” )。一旦我们给 GridView 提供了删除支持,GridView 将自动支持此参数值,单击 Delete 按钮的行将使用其 DataKeys 集合的值。
注意:DELETE 查询中使用的参数名称必须与 GridView 、DetailsView 或者FormView 中的 DataKeyNames 值的名称一致。也就是说,DELETE 语句中的参数是特意命名为 @ProductID (而不是 @ID),因为 Products 表中关键字列名称(所以,GridView 中的 DataKeyNames 值)为 ProductID 。
如果参数名称和 DataKeyNames 值不匹配,GridView 将无法从 DataKeys 连接自动分配参数值。
在 Command and Parameter Editor 对话框中输入删除相关的信息之后,单击OK ,转到Source 视图,查看结果的声明标记:
<asp:SqlDataSource ID="ProductsDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:NORTHWNDConnectionString %>"
SelectCommand=
"SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]"
DeleteCommand="DELETE FROM Products WHERE ProductID = @ProductID">
<DeleteParameters>
<asp:Parameter Name="ProductID" />
</DeleteParameters>
</asp:SqlDataSource>
请注意添加DeleteCommand 属性、<DeleteParameters> 部分和名为productID 的参数对象。
追问
抱歉我问题描述的不是很清楚,我现在的问题是,现在我有两个数据源,已经将一个数据源的数据放到了datasource中,有没有办法将datasource中的数据直接加入到另一个数据源中而跳过用insert语句一点一点加入
追答
你是用什么语言的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式