2016-12-09 3 views
-1

Ich habe 3 verschiedene Tabellen in meiner C# asp.net dotnetnuke app, wie man mehrere Daten in einer Spalte

Bestellen PK_OrderID, Info, NumOfItems, Gesamt

Kunden eingeben PK_CustomerID Name, Nachname, Benutzername, Kennwort

OrderItem PK_OrderItemID FK_Order_ID FK_Customer_ID

ich auch eine Form haben, wo ich Daten eingeben. Ich habe eine Schaltfläche, die dynamisch mehr Textfelder erstellt, so dass der Benutzer einen neuen Artikel eingeben kann.

Ich möchte wissen, wie Sie mehrere Daten in die Datenbank eingeben.

Lassen Sie uns sagen, dass meine Bestellung wie folgt aussieht:

Bestellen Buch, 1, 39.99 €

Bestellen Buch, 2, 50

Jetzt €, dies ist bestellen von 1 Benutzer, und es sollte unter ID gespeichert werden, nicht mehrere.

Dies ist, wie ich meine Daten eingeben

<asp:TextBox ID="info0" class="form-control" runat="server" style="background:#fff"></asp:TextBox><br /> 

<asp:TextBox ID="numOfItems0" class="form-control" runat="server" style="background:#fff"></asp:TextBox><br /> 

<asp:TextBox ID="total0" class="form-control" runat="server" style="background:#fff"></asp:TextBox><br /> 

Dies ist, wie ich neue Schaltflächen laden

for (int i = 1; i< 5; i++) 
{ 
tb1.ID = "info" + i.ToString(); 
tb1.Attributes.Add("runat", "server"); 
tb1.Attributes.Add("class", "form-control"); 
tb2.ID = "numOfItems" + i.ToString(); 
tb2.Attributes.Add("runat", "server"); 
tb2.Attributes.Add("class", "form-control"); 
tb3.ID = "total" + i.ToString(); 
tb3.Attributes.Add("runat", "server"); 
tb3.Attributes.Add("class", "form-control"); 
ph1.Controls.Add(tb1); 
ph1.Controls.Add(tb2); 
ph1.Controls.Add(tb3); 
} 

dies ist, wie ich Daten in die Datenbank eingeben

PortalModuleBase user = new PortalModuleBase(); 

     Order newOrd = new Order(); 

     bazaDBDataContext db = new bazaDBDataContext(); 

     for (int i = 1; i <= 10; i++) 
     { 
      List<string> listOfItems = new List<string>(); 
      listOfItems.Add(info0.Text); 
      string res = Request.Form["dnn$ctr416$Order$inputInfo" + i]; 
      listOfItems.Add(res); 

      for (int j = 0; j < listOfItems.Count; j++) 
      { 
       string val = listOfItems[j]; 
       newOrd.Info = val; 
      } 
     } 

Ich denke, ich brauche um Daten zu lesen und geben Sie in einer Weise, wie folgt aus:

SELECT * 
FROM OrderItem oi 
INNER JOIN customers c ON c_customer_id = c.o_order_id 
WHERE oi.order_id = X 

, aber ich kann es einfach nicht in Code arbeiten.

Hilf mir bitte, ich bin verzweifelt!

+0

ein Auftrag einer orderid helfen wird, und eine Zeile, um Tabelle haben soll.Aber mehrere Zeilen in der orderitem-Tabelle, die selbe orderid, aber unterschiedliche Item-IDs, – jarlh

+0

ja, das ist genau das, was ich erreichen will, aber ich habe keine Ahnung, wie man es macht @jarlh. weiß nicht einmal, ob ich Daten richtig eingeben muss ... – aiden87

+0

Verschieben Sie die Kundennummer Spalte von Orderitems zu Orders. (Immer der gleiche Kunde für eine ganze Bestellung, oder?) – jarlh

Antwort

0

Was ich von oben Szenario verstehen Zuerst müssen Sie primäre Daten in Bestellung Tabelle einfügen und geben Sie die Bestell-ID dann diese Bestell-ID in ListOfItems.

Durch diese orderID wird für mehrere Auftragspositionen

Order newOrd = new Order(); 

    bazaDBDataContext db = new bazaDBDataContext(); 
    // insert into order table 
    // int OrderID = return OrderID from DB 

    for (int i = 1; i <= 10; i++) 
     { 
      List<string> listOfItems = new List<string>(); 
      listOfItems.Add(info0.Text); 
      listOfItems.Add(OrderID); 
      string res = Request.Form["dnn$ctr416$Order$inputInfo" + i]; 
      listOfItems.Add(res); 

      for (int j = 0; j < listOfItems.Count; j++) 
      { 
       string val = listOfItems[j]; 
       newOrd.Info = val; 
      } 
     } 

eindeutig sein Ich hoffe, das

+0

das Ergebnis ist leider das gleiche. leere Datenbank – aiden87

Verwandte Themen