更新具有相同ID的表中的值

时间:2015-11-19 03:51:37

标签: c# asp.net

我有3张桌子

  1. LaminationTitle **
  2. Lamination Title table

    1. LaminationTitleRelation
    2. enter image description here

      1. Papertypemaster
      2. enter image description here

        我想更新" LaminationTitleRelation"的值来自CheckboxList的表...下面是我的更新表.... 下表中的层压标题在LaminationTitle表中更新,其中as 复选框列表项应在LaminationTitleRelation表中更新

        enter image description here

        注意:如果" Papertypeid"在LaminationTitleRelation和Items Checked是不同的,然后应该添加。

        Plz帮帮我

2 个答案:

答案 0 :(得分: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 :(得分:-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);
                }
            }
        }
    }