我正在尝试使用VisualStudio中的图形界面进行自己的更新,但我的更新不起作用。
当我在查询构建器中测试它时一切正常但是当我点击更新后运行网页时添加到网格它恢复到以前的状态,因为更新没有做任何事情。
Params("ID,IsCompleted")
被添加到GridView的Property中的DataKeyNames
。
不幸的是,我找不到任何使用图形界面的解决方案。
答案 0 :(得分:0)
订阅SqlDataSource的OnUpdated事件,检查AffectedRows值。
ref msdn SqlDataSource.UpdateCommand
代码
private void OnDSUpdatedHandler(Object source, SqlDataSourceStatusEventArgs e) {
if (e.AffectedRows > 0) {
// Perform any additional processing,
// such as setting a status label after the operation.
Label1.Text = Request.LogonUserIdentity.Name +
" changed user information successfully!";
}
else {
Label1.Text = "No data updated!";
}
}
aspx
<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>
<asp:Label
id="Label1"
runat="server">
</asp:Label>