2017-10-23 7 views
0

異なる製品、カテゴリ、サブカテゴリを使用して登録クライアントのグループを作成したいと考えています。 私はasp.net C#を使用しており、エンティティモデルを使用してデータベースを更新しています。MSSQLでC#を使用して一意のグループIDを持つデータグループを追加するにはどうすればよいですか?

   int PID = Convert.ToInt32(ddProduct.SelectedValue); 

       if (isValidName(txtGroupName.Text)) 
       { 
        if (ddBusinessCategory.SelectedValue == "0") 
        { 
         var clients = db.Client_Master.Where(c => c.InquiredFor == PID).ToList(); 

         foreach (var clt in clients) 
         { 
          Group_Master gobj = new Group_Master(); 
          gobj.GName = txtGroupName.Text; 
          gobj.ProductID = PID; 
          gobj.CatID = null; 
          gobj.SubCatID = null; 
          gobj.ClientID = clt.CID; 
          gobj.CreatedBy = Convert.ToInt32(((User_Master)Session["User"]).UID); 
          gobj.CreatedOn = DateTime.Now; 
          db.Group_Master.AddObject(gobj); 
          db.SaveChanges(); 
         } 
        } 
        else 
        { 
         if (ddSubCategory.SelectedValue == "0") 
         { 

          int CID = Convert.ToInt32(ddBusinessCategory.SelectedValue); 

          var clients = db.Client_Master.Where(c => c.InquiredFor == PID && c.BusinessCategory == CID).ToList(); 

          foreach (var clt in clients) 
          { 
           Group_Master gobj = new Group_Master(); 
           gobj.GName = txtGroupName.Text; 
           gobj.ProductID = PID; 
           gobj.CatID = CID; 
           gobj.SubCatID = null; 
           gobj.ClientID = clt.CID; 
           gobj.CreatedBy = Convert.ToInt32(((User_Master)Session["User"]).UID); 
           gobj.CreatedOn = DateTime.Now; 
           db.Group_Master.AddObject(gobj); 
           db.SaveChanges(); 
          } 
         } 
         else 
         { 
          int CID = Convert.ToInt32(ddBusinessCategory.SelectedValue); 
          int SID = Convert.ToInt32(ddSubCategory.SelectedValue); 

          var clients = db.Client_Master.Where(c => c.InquiredFor == PID && c.BusinessCategory == CID && c.SubCategory == SID).ToList(); 

          foreach (var clt in clients) 
          { 
           Group_Master gobj = new Group_Master(); 
           gobj.GName = txtGroupName.Text; 
           gobj.ProductID = PID; 
           gobj.CatID = CID; 
           gobj.SubCatID = SID; 
           gobj.ClientID = clt.CID; 
           gobj.CreatedBy = Convert.ToInt32(((User_Master)Session["User"]).UID); 
           gobj.CreatedOn = DateTime.Now; 
           db.Group_Master.AddObject(gobj); 
           db.SaveChanges(); 
          } 
         } 
        } 
        Groups(); 
       } 

多くの方法でグループIDを追加しようとしましたが、成功しませんでした。 どうすればこの問題を解決できるか教えてください。

ありがとうございました!

答えて

0

クライアントIDとプロダクトIDを参照する新しいテーブルClientsProductsを作成する必要があります。これは1対多の関係と呼ばれます。 ここをクリックしてくださいhere

+0

私は、1のみの製品に基づいてグループを作成しています。2. 1つのメインカテゴリを持つ製品、3.メインカテゴリとサブカテゴリを持つ最終製品。 –

0

私はlistの最後のデータのIDを取得し、グループIDとして保存することでこれを解決しました。これにより、一意のグループIDが取得されます。

if (ddBusinessCategory.SelectedValue == "0") 
        { 
         var clients = db.Client_Master.Where(c => c.InquiredFor == PID).ToList(); 

         int GrpID = 0; 

         if (clients.Count() > 0) 
         { 
          foreach (var clt in clients) 
          { 
           if (ProductGrp(PID, clt.CID)) 
           { 
            Group_Master gobj = new Group_Master(); 
            gobj.GrpID = 0; 
            gobj.GName = txtGroupName.Text; 
            gobj.ProductID = PID; 
            gobj.CatID = null; 
            gobj.SubCatID = null; 
            gobj.ClientID = clt.CID; 
            gobj.CreatedBy = Convert.ToInt32(((User_Master)Session["User"]).UID); 
            gobj.CreatedOn = DateTime.Now; 
            db.Group_Master.AddObject(gobj); 
            db.SaveChanges(); 
            GrpID = gobj.GID; 
           } 
           else 
           { 
            ScriptManager.RegisterStartupScript(Page, this.GetType(), "myscript()", "bootbox.alert({title: '<b>Error</b>',message: '<b>Group already exist.</b>',});", true); 
            break; 
           } 
          } 

          List<Group_Master> ggobj = db.Group_Master.Where(g => g.ProductID == PID && g.CatID == null && g.SubCatID == null).ToList(); 
          foreach (var gid in ggobj) 
          { 
           if (gid.GrpID == 0) 
           { 
            Group_Master gmobj = db.Group_Master.Single(s => s.GID == gid.GID); 
            gmobj.GrpID = GrpID; 
            db.SaveChanges(); 
           } 
          } 
         } 
         else 
         { 
          ScriptManager.RegisterStartupScript(Page, this.GetType(), "myscript()", "bootbox.alert({title: '<b>Error</b>',message: '<b>No Clients exist.</b>',});", true); 
         } 
        } 
関連する問題