从具有关系的多个表中删除列

时间:2014-03-21 17:26:46

标签: c# asp.net sql-server-2008

我正在使用Gridview显示数据库中的一些数据,并提供删除数据的选项但现在我只是通过外键将主键列引用到另一个表。无论如何要删除并且现在删除因为冲突而无法正常工作。

  

错误: - DELETE语句与REFERENCE约束冲突   “FK_temp1_ProductDetails”。冲突发生在数据库中   “E:\ VISUAL STUDIO 2010 \ SHOPMOBILE \ APP_DATA \ SHOPPING.MDF”,表格   “dbo.temp1”,列'product_id'。声明已经终止。

无论如何要同时从表中删除数据。删除查询

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConflictDetection="CompareAllValues" 
            ConnectionString="<%$ ConnectionStrings:shoppingConnectionString2 %>" 
            DeleteCommand="DELETE FROM [ProductDetails] WHERE [Product_id] = @original_Product_id" 
            OldValuesParameterFormatString="original_{0}" 
            SelectCommand="SELECT * FROM [ProductDetails]" 
            UpdateCommand="UPDATE [ProductDetails] SET [Product_name] = @Product_name, [Brand] = @Brand, [Category] = @Category, [Sub_category] = @Sub_category, [Product_info] = @Product_info, [Price] = @Price, [Big_img] = @Big_img, [Quantity] = @Quantity WHERE [Product_id] = @original_Product_id">
            <DeleteParameters>
                <asp:Parameter Name="original_Product_id" Type="Int32" />
                <asp:Parameter Name="original_Product_name" Type="String" />
                <asp:Parameter Name="original_Brand" Type="String" />
                <asp:Parameter Name="original_Category" Type="String" />
                <asp:Parameter Name="original_Sub_category" Type="String" />
                <asp:Parameter Name="original_Product_info" Type="String" />
                <asp:Parameter Name="original_Price" Type="Int64" />
                <asp:Parameter Name="original_Big_img" Type="String" />
                <asp:Parameter Name="original_Quantity" Type="Int64" />
            </DeleteParameters>
        </asp:SqlDataSource>

1 个答案:

答案 0 :(得分:1)

在sql server management studio上,选择ProductDetails表设计视图并打开关系窗口,然后将删除操作设置为CASCADE DELETE,它的工作正常。 enter image description here

更新:为所有表关系设置它。