如何使用单个查询更新多个表

时间:2014-05-08 08:10:25

标签: c# asp.net sql

我有三张桌子

  1. Categorycrt productid(主键), 产品分类, Girthfrom, GirthTo

  2. Itemcre Itemid(主键)。 ITEMNAME,

  3. Pricefix PriceId(PrimaryKey的) Itemid(Itemcre的外键), Productid(Categorycrt的外键), 率

  4. 如何更新Pricefix表?

    我有pricefix表的gridview。

    我的aspx页面

    <lang="html">
       <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
        onrowcancelingedit="GridView1_RowCancelingEdit"
        onrowdeleting="GridView1_RowDeleting" 
        onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating">
    <columns>
           <asp:TemplateField HeaderText="PriceId">
           <itemtemplate>
           <asp:Label ID="lblPriceId" runat="server" Text='&lt;%#Eval("PriceId") %>'>'> 
           </itemtemplate>
    
            <asp:TemplateField HeaderText="ItemName">
           <itemtemplate>
           <asp:Label ID="lblItemId" runat="server" Text='&lt;%#Eval("Itemname") %>'>'> 
           </itemtemplate>
           <edititemtemplate>
           <asp:TextBox ID="txtItemId" runat="server" Text='&lt;%#Eval("Itemname") %>'>'>
           </edititemtemplate>
    
            <asp:TemplateField HeaderText="ProductCategory">
           <itemtemplate>
           <asp:Label ID="lblPdtId" runat="server" Text='&lt;%#Eval("ProductCategory") %>'>'> 
           </itemtemplate>
           <edititemtemplate>
           <asp:TextBox ID="txtPdtId" runat="server" Text='&lt;%#Eval("ProductCategory") %>'>'>
           </edititemtemplate>
    
            <asp:TemplateField HeaderText="Rate">
           <itemtemplate>
           <asp:Label ID="lblRate" runat="server" Text='&lt;%#Eval("Rate") %>'>'> 
           </itemtemplate>
           <edititemtemplate>
           <asp:TextBox ID="txtRate" runat="server" Text='&lt;%#Eval("Rate") %>'>'>
           </edititemtemplate>
    
               <asp:TemplateField HeaderText="Action">
                   <itemtemplate>
                       <asp:LinkButton ID="edit" runat="server" CommandName="Edit" Text="Edit">
                       <asp:LinkButton ID="Delete" runat="server" CommandName="Delete" Text="Delete">
                   </itemtemplate>
                   <edititemtemplate>
                       <asp:LinkButton ID="Update" runat="server" CommandName="Update" Text="Update">
                       <asp:LinkButton ID="Cancel" runat="server" CommandName="Cancel" Text="cancel">
                   </edititemtemplate>
    
           </columns>
    

    单击所选行的网格更新和取消链接按钮的编辑按钮时。我需要更新pricefix table的productcategory,itemname和rate.actually在pricefix表中存储为productcategory和itemname ....的foreignkey值,实际上在更新pricefix的gridview时,更新的productcategory和itemname应该在他们的父表,即Itemcre和Categorycrt,以及在Pricefix表中的速率。

1 个答案:

答案 0 :(得分:1)

您应该使用存储过程来影响更改。您可以将数据源update命令更新为某个过程,并且可以很好地满足事务中出现的任何问题。

它将在以下几个方面:

CREATE PROCEDURE USP_UPDATEPRICE
(
@productcategory INT,
@itemname INT
@rate INT
)
AS

UPDATE
    pricefix 
SET
    RATE = @rate
FROM
    pricefix
INNER JOIN
    PriceCAt
         ON pricefix.id = pricecat.pricefix
WHERE
     pricecat.itemname = @pricename
and
     pricecat.cat = @cat

GO

对于你的作业,你真的需要阅读一些简单的更新 - 否则你的学习将一无所获。