2015-06-14 89 views
0

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

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

我看到的Delete命令的唯一参数是UserID,我不确定我错过了什么。

任何人有任何想法? 谢谢。

<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> 
+0

是updateCommand工作吗? – Dreamweaver

回答

0

您是否使用SQL Server Management Studio在数据库上手动执行了DELETE FROM [tblUserLogin] WHERE [UserID] =xxxtblUserLogin可能会造成背后的错误。

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

+0

除非Management Studio是我尚未发现的VS的一部分,否则我认为我无法访问它。数据库本身是作为此项目的一部分给予我的MS Access数据库。为了回答Dreamweaver的问题,是的,Update Command工作得很好。它只有我遇到问题的删除命令。真正让我挠头的是我在网站的另一页上有另一个gridview,几乎与这个页面完全相同,并且工作正常。 – tworley1977

+0

两个GridView之间的唯一区别是,在工作正常的一个上,我使用智能标记选项启用了更新和删除命令。在这个gridview中,我遇到了问题,智能标签选项不存在,所以我不得不手动输入代码。但是,如果您比较代码,除了变量名称,它们是相同的,所以我不确定我错过了什么。 – tworley1977