2014-05-08 2 views
0

J'ai trois tablesComment mettre à jour plusieurs tables en utilisant seule requête

  1. Categorycrt ProductID (clé primaire), catégorie de produit, Girthfrom, GirthTo

  2. Itemcre Itemid (clé primaire) . Itemname,

  3. Pricefix PriceId (primarykey), Itemid (clé étrangère de Itemcre), ProductID (clé étrangère de Categorycrt), Taux

Comment puis-je mettre à jour la table Pricefix?

J'ai un gridview pour la table pricefix.

Ma page 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> 

En cliquant sur le bouton d'édition de la mise à jour de la grille et bouton d'annulation de lien apparaît pour la ligne sélectionnée. J'ai besoin de mettre à jour la productcategory, l'itemname et le taux de la table pricefix.actually dans la table pricefix la valeur stockée en tant que valeur foreignkey de productcategory et, itemname .... réellement pendant la mise à jour de la gridview de pricefix la productcategory mise à jour et itemname leur table parente ie, Itemcre et Categorycrt et évaluent la table inPricefix elle-même.

Répondre

1

Vous devriez vraiment utiliser une procédure stockée pour affecter le changement. Vous pouvez mettre à jour la commande updat de la source de données vers une procédure et prendre en charge de manière adéquate les problèmes qui surviennent dans les transactions.

Ce sera quelque part le long des lignes de:

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

Pour votre mission, vous avez vraiment besoin de faire de la lecture sur les mises à jour simples - sinon vos études seront pour rien.

+0

Pouvez-vous me donner la requête de procédure de magasin –

+0

qu'est-ce que Priceat ?? –

+0

Devrait probablement être Itemcre –

Questions connexes