更新命令问题
本文关键字:问题 命令 更新 | 更新日期: 2023-09-27 18:20:16
我试图为正在构建的群网站创建更新功能时遇到问题。我已经准备好了使用SQL数据源和具有编辑功能的列表视图的代码。基本上,我在更新表格时遇到了问题。我只想更新DB中表中的某些字段,但我只知道如何使用ID作为数据键名称来更新它们。有人能帮我/指导我为代码添加什么以更新我想要的字段吗?基本上,我只想能够编辑名称、描述和单位字段。
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:UniString %>"
SelectCommand="SELECT [module_name], [module_desc], [module_units]
FROM [modules] ORDER BY [module_name], [module_desc], [module_units]"
UpdateCommand="UPDATE [modules] SET [module_name]= @Module_Name, [module_desc]=@Module_Description,
[module_units]=@Module_Units"
>
<UpdateParameters>
<asp:Parameter Name="Module_Name" Type="String" />
<asp:Parameter Name="Module_Description" Type="String" />
<asp:Parameter Name="Module_Units" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
</p>
<asp:ListView ID="ListView1" runat="server"
DataSourceID="SqlDataSource1"
**DataKeyNames= ""** >
<AlternatingItemTemplate>
<span style="">module_name:
<asp:Label ID="module_nameLabel" runat="server" Text='<%# Eval("module_name") %>' />
<br />
module_desc:
<asp:Label ID="module_descLabel" runat="server" Text='<%# Eval("module_desc") %>' />
<br />
module_units:
<asp:Label ID="module_unitsLabel" runat="server" Text='<%# Eval("module_units") %>' />
<br />
<asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
<br />
<br />
</span>
</AlternatingItemTemplate>
<EditItemTemplate>
<span style="">module_name:
<asp:TextBox ID="module_nameTextBox" runat="server" Text='<%# Bind("module_name") %>' />
<br />
module_desc:
<asp:TextBox ID="module_descTextBox" runat="server" Text='<%# Bind("module_desc") %>'
TextMode="MultiLine" Columns="30" Rows="10" />
<br />
module_units:
<asp:TextBox ID="module_unitsTextBox" runat="server" Text='<%# Bind("module_units") %>' />
<br />
<asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="Update" />
<asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" />
<br /><br /></span>
</EditItemTemplate>
我在CS文件上没有后端代码,因为我认为不需要它。我也没有添加整个列表视图,因为它很长,可能不需要显示。我把**
放在键名旁边,因为我认为这就是错误的来源。当我有模块名称之类的东西时,我认为它是有效的,但它会将所有内容更新为相同的名称、描述等。我想单独将每个列表编辑更改为不同的模块名称、描述等等。
简单地说,您应该
- 更改DB SelectCommand中的select and select ID列="select[module_ID]
- 更改更新"更新[modules]SET[module_name]=@module_name,[module_desc]=@module_Description,[module_units]=@module_units,其中[module_id]=@module_id"
- 将datakey列设置为您提到的"module_id"
- 将隐藏列添加到列表视图中