2015-11-19 42 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); 
           } 
          } 
         } 
        }