我假设您希望将 UpdateCommand 与 SqlDataSource 和 GridView 一起使用。
更新命令使用 SQL:
Update yourTable SET columnName = 'yourValue';
Update MainAsset Set site ='http://stackoverflow.com';
在msdn 的示例中,数据库列(字段)绑定到 gridview1。BoundField 的值可以通过使用带有@ 的DataField 的值来传递。数据库列 LastName 将绑定到网格列<asp:BoundField HeaderText="Last Name" DataField="LastName" />
,并在更新命令中使用 @LastName 传递值:
<asp:SqlDataSource
id="SqlDataSource1"
runat="server"
DataSourceMode="DataSet"
ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees"
UpdateCommand="Update Employees SET
FirstName=@FirstName,LastName=@LastName,
Title=@Title WHERE EmployeeID=@EmployeeID"
OnUpdated="OnDSUpdatedHandler">
</asp:SqlDataSource>
<asp:GridView
id="GridView1"
runat="server"
AutoGenerateColumns="False"
DataKeyNames="EmployeeID"
AutoGenerateEditButton="True"
DataSourceID="SqlDataSource1">
<columns>
<asp:BoundField HeaderText="First Name" DataField="FirstName" />
<asp:BoundField HeaderText="Last Name" DataField="LastName" />
<asp:BoundField HeaderText="Title" DataField="Title" />
</columns>
</asp:GridView>
更新以解决您的评论
您Select * from Dbo.MainAsset, dbo.Model ...
从不同的表中加载数据并将它们显示为一个大表。这称为联接。您的 Select 使用旧的连接语法而不是新的语法
我不确定我是否理解您的评论:“我在询问语法应该如何查找 UpdateCommand。” 在您的更新中,您想更新所有 3 个表(MainAsset、Model 和 Hardware)中的值吗?如果是这种情况,我们需要知道网格中显示的单列。您可以查看此问题或此更新加入说明,以更好地了解加入更新。
UpdateCommand 的更新 2 语法
- 如何制作自定义 UpdateCommand?
- 我将如何更新一列,比如“MainAsset.site”
- 如果下拉列表更改,如何更新记录?
首先,您需要知道SQL Server 中正常的更新语句是怎样的:
UPDATE MainAsset
SET site= NewValueForSite
,teacher = 'Dr. Seuss'
WHERE rowId = FilterValue
要创建自定义更新命令,您需要编写所需的 sql 并将其分配/传递给 SqlDataSource 的属性UpdateCommand。您可以执行以下操作(假设 pk 代表主键并标识一行):
<asp:SqlDataSource
id="SqlDataSource1"
// ... see above
UpdateCommand="Update MainAsset SET
site=@site
,teacher=@teacher,
WHERE pk=@pk"
OnUpdated="OnDSUpdatedHandler">
</asp:SqlDataSource>
关于您的第三个问题,我想向您指出这个问题:
<asp:DropDownList ID="ddlSite" runat="server"
AutoPostBack="True"
OnSelectedIndexChanged="SelectionHasChanged"
DataSourceID="SqlDataSource1" DataTextField="site"
DataValueField="pk" AppendDataBoundItems="true">