我有一个显示所有注册用户及其部分信息的GridView,当您选择边上的"select“链接时,它会显示一个包含与该用户相关的所有详细信息的DetailsView。select可以很好地工作,并更新所选用户的详细信息视图,当我尝试编辑DetailsView时,它将更新数据库,并在更改字段时填写为所有用户更新的信息(例如,如果我更改客户的名字,每个注册的人都会得到这个名字)。下面是我的SqlDataSource的aspx代码:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ApplicationServices %>" OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT * FROM [UserProfile] ORDER BY [Email], [LastName], [Company]"
UpdateCommand="UPDATE [UserProfile] SET [LastName] = @LastName, [PartsList] = @PartsList, [UserName] = @UserName, [Question] = @Question,
[Answer] = @Answer, [Role] = @Role
WHERE [FirstName] = FirstName AND [Company] = Company">
<UpdateParameters>
<asp:Parameter Name="FirstName" Type="String" />
<asp:Parameter Name="LastName" Type="String" />
<asp:Parameter Name="Company" Type="String" />
<asp:Parameter Name="PartsList" Type="String" />
<asp:Parameter Name="UserName" Type="String" />
<asp:Parameter Name="Password" Type="String" />
<asp:Parameter Name="Email" Type="String" />
<asp:Parameter Name="Question" Type="String" />
<asp:Parameter Name="Answer" Type="String" />
<asp:Parameter Name="Role" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>发布于 2012-09-07 03:52:20
您在Where参数中忘记了@original_
将UpdateCommand更改为:
UPDATE [UserProfile] SET [LastName] = @LastName, [PartsList] = @PartsList, [UserName] = @UserName, [Question] = @Question, [Answer] = @Answer, [Role] = @Role WHERE [FirstName] = @original_FirstName AND [Company] = @original_Company
https://stackoverflow.com/questions/12307142
复制相似问题