2015-11-19 41 views
0

我有3個表更新值與相同的id

  1. LaminationTitle **

Lamination Title table

  • LaminationTitleRelation
  • enter image description here

  • Papertypemaster
  • enter image description here

    我想更新它來自的CheckBoxList 「LaminationTitleRelation」 表中的值...下面是我的更新表單.... 下面的表單中LaminationTitle表,更新層壓標題,其中作爲 複選框列表項應LaminationTitleRelation表更新

    enter image description here

    注意:如果LaminationTitleRelation和Items Checked中的「Papertypeid」不同,那麼應該加上。

    PLZ幫我

    +1

    那麼這就是你'想做'?但到目前爲止,'你做了什麼'? – niksofteng

    +0

    發佈您的代碼! –

    +0

    嗨傑夫thanx的回覆.......我用不同的方式來解決這個問題...而不是更新記錄這是更困難的.....我直接刪除/刪除表中的記錄和防火插入查詢刪除查詢成功....如果刪除查詢返回TRUE,插入將觸發,所有新記錄將添加到表中 –

    回答

    0

    使用以下查詢:

    query = "Create Table #PaperTypeMapping(LaminationTitleId int, PaperTypeId int)"; 
    
    //For each value of Paper Type Id you will need to insert a row 
    query = "Insert Into #PaperTypeMapping(LaminationTitleId, PaperTypeId) Values(@laminationId, @paperTypeId)"; 
    
    //Update existing values 
    query = "Update OldMapping Set OldMapping.ActiveStatus = 1 FROM LaminationTitleRelation OldMapping Inner join #PapertTypeMapping NewMapping ON OldMapping.LamTitleId = NewMapping.LaminationTitleId and OldMapping.PaperTypeId = NewMapping.PaperTypeId" 
    
    //Insert new values 
    query = "Insert into LaminationTitleRelation(lamTitleId, PapertTypeId, ActiveStatus) Select LaminationTitleId, PapertTYpeId, 1 From #PaperTypeMapping NewMapping where NOT EXISTS(SELECT 1 FROM LaminationTitleRelation OldMapping WHERE OldMapping.LamTitleId = NewMapping.LaminationTitleId and OldMapping.PaperTypeId = NewMapping.PaperTypeId)"; 
    

    或者你也可以使用下面的鏈接一個由MS SQL內置的實用工具Merge

    -1
    protected void btnUpdate_Click(object sender, EventArgs e) { 
         DB = new DBFunctions(); 
         string vItems = mGetSelectedItems(); 
         string vQuery = "Update laminationtitle Set title='" + txtLaminationTitle.Text + "',laminationtypeid='" + ddlProductType.SelectedValue + "' where laminationid='" + Request.QueryString["laminationid"] + "'"; 
         int x = DB.SetData(vQuery); 
         DataTable dSelect = new DataTable(); 
         DataTable dAll = new DataTable(); 
         DB = new DBFunctions(); 
         DB1 = new DBFunctions(); 
         if (x > 0) { 
          int y = DB.SetData("delete from laminationtitlepapertyperelation where lamtitleid=" + Request.QueryString["laminationid"]); 
          if (y > 0) { 
           string[] values = vItems.Split(','); 
           for (int i = 0; i < values.Length; i++) { 
            vQuery = "insert into laminationtitlepapertyperelation(lamtitleid, papertypeid, activestatus)VALUES('" + Request.QueryString["laminationid"].ToString() + "','" + values[i] + "',1)"; 
            DB.SetData(vQuery); 
            ScriptManager.RegisterStartupScript(this, GetType(), " Update Lamination Title", "alert('Lamination " + '"' + txtLaminationTitle.Text + '"' + " Title Updated Sucessfully');window.location='ManageLaminationTitle.aspx';", true); 
           } 
          } 
         } 
        }