2017-04-19 5 views
-1

Comment créer plusieurs lignes sur ma table en même temps? Je souhaite pouvoir ajouter des lignes inexistantes et modifier/mettre à jour les lignes existantes chaque fois que j'appuie sur Envoyer.Comment créer plusieurs lignes à la fois?

Pour tester cela, j'ai seulement créé 2 champs dans la base de données, et je ne peux pas ajouter plus d'une ligne. Valeur de numbuild = 5. Une seule ligne est insérée.

Essayé:

public ActionResult CreateBuildings(Guid pi, int? numofbuilding) 
{ 
    OnboardModel model = new OnboardModel(); 
    List<onboard_BuildingInfo> coms = new List<onboard_BuildingInfo>(); 

    for (int i = 1; i <= (numofbuilding+1); i++) 
    { 
     onboard_BuildingInfo f = new onboard_BuildingInfo 
     { 
      projectID = pi, 
      building_ID = i 
     }; 
     coms.Add(f); 
    } 
    context.onboard_BuildingInfos.InsertAllOnSubmit(coms); 
    context.SubmitChanges(); 
    return View(model); 
} 

et essayé:

public ActionResult CreateBuildings(Guid pi, int? numofbuilding) 
{ 
    OnboardModel model = new OnboardModel(); 
    for (int i = 1; i <= numofbuilding; i++) 
    { 
     onboard_BuildingInfo coms = new onboard_BuildingInfo 
     { 
      projectID = pi, 
      building_ID = i 
     }; 
     context.onboard_BuildingInfos.InsertOnSubmit(coms); 
     context.SubmitChanges(); 
    } 

    return View(model); 
} 

BuildingInfo Table

Create Table onboard_BuildingInfo (
     projectID      UNIQUEIDENTIFIER DEFAULT  NEWID() , 
     building_ID      int     NULL , 
     city_building     varchar(500)  NULL , 
     numberofcommon     INT     NULL 
     PRIMARY KEY (projectID) 
    ) 
+0

Quand vous dites que ça ne marche pas, que voulez-vous dire? Avez-vous une erreur? Est-ce qu'une seule ligne est insérée? Quelle est la valeur de votre variable appelée numofbuilding? Est-ce 2 par hasard .... haha ​​ – Milney

+0

@Milney valeur de numofbuilding est 5. et oui, une seule ligne est insérée. –

+0

Nous aurions besoin de voir le code pour votre dépôt. –

Répondre

0

Faire le projectID pas une clé primaire ou une clé composite sur projectID et building_ID . Les clés primaires doivent être uniques, vous ne pouvez donc pas avoir d'éléments en double dans la colonne projectID. Une clé composite signifie que la combinaison de (projectID * building_ID) doit être unique, vous pouvez donc avoir des doublons dans les deux colonnes, mais pas les deux.