更新命令问题

本文关键字:问题 命令 更新 | 更新日期: 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文件上没有后端代码,因为我认为不需要它。我也没有添加整个列表视图,因为它很长,可能不需要显示。我把**放在键名旁边,因为我认为这就是错误的来源。当我有模块名称之类的东西时,我认为它是有效的,但它会将所有内容更新为相同的名称、描述等。我想单独将每个列表编辑更改为不同的模块名称、描述等等。

更新命令问题

简单地说,您应该

  1. 更改DB SelectCommand中的select and select ID列="select[module_ID]
  2. 更改更新"更新[modules]SET[module_name]=@module_name,[module_desc]=@module_Description,[module_units]=@module_units,其中[module_id]=@module_id"
  3. 将datakey列设置为您提到的"module_id"
  4. 将隐藏列添加到列表视图中