我的部分.aspx文件内容
<asp:AccessDataSource ID="AccessDataSource1" runat="server" ConflictDetection="CompareAllValues" DataFile="~/App_Data/Database1.mdb" DeleteCommand="DELETE FROM [student] WHERE [id] = ? AND [sname] = ? AND [age] = ? AND [gender] = ?" InsertCommand="INSERT INTO [student] ([id],[sname],[age],[gender]) VALUES (?,?,?,?)" OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [student]" UpdateCommand="UPDATE [student] SET [id] = ?,[sname] = ?,[age] = ?,[gender] = ?  WHERE [id] = ? AND [sname] = ? AND [age] = ? AND [gender] = ?">
<DeleteParameters>
<asp:Parameter Name="original_id" Type="Int16" />
<asp:Parameter Name="original_sname" Type="String" />
<asp:Parameter Name="original_age" Type="Int32" />
<asp:Parameter Name="original_gender" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="id" Type="Int16" />
<asp:Parameter Name="sname" Type="String" />
<asp:Parameter Name="age" Type="Int32" />
<asp:Parameter Name="gender" Type="String" />
<asp:Parameter Name="original_id" Type="Int16" />
<asp:Parameter Name="original_sname" Type="String" />
<asp:Parameter Name="original_age" Type="Int32" />
<asp:Parameter Name="original_gender" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="id" Type="Int16" />
<asp:Parameter Name="sname" Type="String" />
<asp:Parameter Name="age" Type="Int32" />
<asp:Parameter Name="gender" Type="String" />
</InsertParameters>
</asp:AccessDataSource>.......<asp:Button ID = "Button3" runat = "server" onclick = "Button3_Click" Text = "delete"/>我的.aspx.cs文件部分内容
     protected void Button3_Click(object sender, EventArgs e)
     {
         AccessDataSource1.DeleteParameters["original_id"].DefaultValue = this.TextBox1.Text;
         AccessDataSource1.DeleteParameters["original_sname"].DefaultValue = this.TextBox2.Text;
         AccessDataSource1.DeleteParameters["original_age"].DefaultValue = this.TextBox3.Text;
         AccessDataSource1.DeleteParameters["original_gender"].DefaultValue = this.TextBox4.Text;
         AccessDataSource1.Delete();
     }在AccessDataSource1.Delete();这里出错了,错误是“您已指定 删除 命令比较 SqlDataSource“AccessDataSource1”的所有值,但为 values 传入的字典是空的。请为 删除 传入有效的字典或将模式更改为 OverwriteChanges。”不明白,实际上我就不知道该怎么写书上都没有这部分内容呀。。不懂呀不懂初学,大大们解释的时候能不能尽量说详细一点,谢谢啦O(∩_∩)O~

解决方案 »

  1.   

    是否使用ConflictDetection
    DeleteCommand="DELETE FROM [Tb] WHERE [ID] = ?" 
    <DeleteParameters>
      <asp:Parameter Name="ID" Type="Int32" />
      </DeleteParameters>
      

  2.   

    用CommandName判断,写sql语句删除
      

  3.   

    <a href="?&action=del&id=<%# Eval("id") %>">删除</a>
      

  4.   

    检查 你的参数是否对应上另外删除的话  只需要一个唯一的ID 作为参数还有this.TextBox1.Text;
    这个值是从哪取的?
    你输入的时候这些值在数据库里都存在么?