【问题标题】:SQL statement not being correctly populated from DetailsView (ASPX/C#)未从 DetailsView (ASPX/C#) 正确填充 SQL 语句
【发布时间】:2011-06-17 19:39:06
【问题描述】:

我在 ASPX 页面中有以下代码:

        <asp:DetailsView ID="DetailsView4" runat="server" AutoGenerateRows="False" 
            DataKeyNames="ChangeID,Completed" DataSourceID="SqlDataSource5" Height="50px" 
            Width="125px">
            <Fields>
                <asp:CheckBoxField DataField="Completed" HeaderText="Completed" 
                    SortExpression="Completed" />
                <asp:CommandField ShowEditButton="True" />
            </Fields>
        </asp:DetailsView>


<asp:SqlDataSource ID="SqlDataSource5" runat="server" 
    ConnectionString="<%$ ConnectionStrings:Properties %>" 

    SelectCommand="SELECT * FROM [ATI_CHANGE_REQUESTS] WHERE ([ChangeID] = @ChangeID)" 
    UpdateCommand="UPDATE ATI_CHANGE_REQUESTS SET Completed = @Completed WHERE ChangeID = @ChangeID">
    <SelectParameters>
        <asp:ControlParameter ControlID="grdRequests" Name="ChangeID" 
            PropertyName="SelectedDataKey[1]" Type="Int32" />
    </SelectParameters>
    <UpdateParameters>
        <asp:Parameter Name="Completed" />
        <asp:Parameter Name="ChangeID" />
    </UpdateParameters>
</asp:SqlDataSource>

而且在大多数情况下,它似乎可以正常工作。它从我在 ControlParameter 中引用的 gridview 中提取正确的 ChangeID,但它实际上从未更新任何内容。当我选择了 ChangeID 53 的行时,SQL Profiler 显示它执行的命令为UPDATE ATI_CHANGE_REQUESTS SET Completed=0 WHERE ChangeID=53,但是无论是否选中了 DetailsView4 中的复选框,它总是设置 Completed=0。我做错了什么?

【问题讨论】:

    标签: c# asp.net sql gridview dataview


    【解决方案1】:

    原来我的 SQL 数据源由于某种未知原因被冲洗掉了,重新创建 SqlDataSource1 完全解决了这个问题,但我仍然不知道为什么。无论如何谢谢:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      • 1970-01-01
      • 2021-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多