【问题标题】:Deleting Columns Error删除列错误
【发布时间】:2015-06-14 16:31:25
【问题描述】:

使用 4.5 和 C# 构建 ASP 网站。我正在使用网格视图来显示我的数据库记录,并启用了更新/删除按钮。除删除按钮外,一切正常。我收到以下错误:

必需参数中缺少一个或多个值。

我看到的删除命令的唯一参数是用户 ID,我不确定我缺少什么。

有人有什么想法吗? 谢谢。

<asp:GridView ID="grdUsers" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
        <Columns>
            <asp:BoundField DataField="UserID" HeaderText="UserID" InsertVisible="False" SortExpression="UserID" />
            <asp:BoundField DataField="UserName" HeaderText="UserName" SortExpression="UserName" />
            <asp:BoundField DataField="UserPassword" HeaderText="UserPassword" SortExpression="UserPassword" />
            <asp:BoundField DataField="SecurityLevel" HeaderText="SecurityLevel" SortExpression="SecurityLevel" />
            <asp:CommandField ShowEditButton="True" />
            <asp:CommandField ShowDeleteButton="True" />
        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
        SelectCommand="SELECT * FROM [tblUserLogin]" OnSelecting="SqlDataSource1_Selecting"
        DeleteCommand="DELETE FROM [tblUserLogin] WHERE [UserID] = ?"
        UpdateCommand="UPDATE [tblUserLogin] SET [UserName] = ?, [UserPassword] = ?, [SecurityLevel] = ? WHERE [UserID] = ?">
        <DeleteParameters>
            <asp:Parameter Name="UserID" Type="Int32" />
        </DeleteParameters>
        <UpdateParameters>
            <asp:Parameter Name="UserName" Type="String" />
            <asp:Parameter Name="UserPassword" Type="String" />
            <asp:Parameter Name="SecurityLevel" Type="Char" />
        </UpdateParameters>
    </asp:SqlDataSource>

【问题讨论】:

  • updateCommand 工作了吗?

标签: c# asp.net


【解决方案1】:

您是否使用 SQL Server Management Studio 在数据库上手动执行了DELETE FROM [tblUserLogin] WHERE [UserID] =xxxtblUserLogin 可能存在导致幕后错误的限制。

如果铃声响起,请检查Cant delete in database because of constraints

【讨论】:

  • 除非 Management Studio 是我尚未发现的 VS 的一部分,否则我认为我无法访问它。数据库本身是作为该项目的一部分提供给我的 MS Access 数据库。要回答 Dreamweaver 的问题,是的,更新命令可以正常工作。它只是我遇到问题的删除命令。真正让我摸不着头脑的是,我在网站的不同页面上有另一个 gridview,它实际上与这个页面相同,而且效果很好。
  • 两个网格视图之间的唯一区别是,在一个运行良好的视图中,我使用智能标签选项启用了更新和删除命令。在这个 gridview 上,我遇到问题的那个,智能标签选项不存在,所以我不得不手动输入代码。但是,如果您比较代码,除了变量名称之外,它们是相同的,所以我不确定我错过了什么。
猜你喜欢
  • 1970-01-01
  • 2018-06-22
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 2019-01-19
  • 1970-01-01
  • 2014-06-24
相关资源
最近更新 更多