如何使用复选框列表中的数据更新数据库表中的数据?

时间:2016-10-27 07:53:37

标签: c# sql sql-server sql-server-2008 checkboxlist

数据库中有 2个表称为master和kpi 表中的列是

  

no,name,startdt,enddt,status

kpi 表中的列是

  

不,kpi_det

注意:"否"在kpi表中指的是" no"在主表中。
对于相同的" no"(几行),kpi_det可以有多个值。
我创建了一个更新查询,并给出了以下异常。

  

违反PRIMARY KEY约束' PK_COMPETITION_KPI'。无法在对象' dbo.COMPETITION_KPI'中插入重复键。重复键值为(3,OTHER)。

我期望做的是,更新kpi表中的值,如果复选框列表中的数据多于或少于表中数据的数量,则应将所有数据添加到表中或从表中删除分别。有什么建议使这项工作?

这是我的查询

public DataSet updateKPI(int compNo, string kpi)
{
    string strQuery = @"update [COMPETITION_KPI] set COMPETITION_KPI='" + kpi + "' " + Environment.NewLine +
                        @"where COMPETITION_NO='" + compNo + "' ";

    return SqlHelper.ExecuteDataset(strConnString, CommandType.Text, strQuery);
}        

这是我的c#代码,

foreach (ListItem item in chkEditList.Items)
{
    if (item.Selected)
    {
        kpi = item.ToString();
        ds = db.updateKPI(compNo, kpi);
    }
}

0 个答案:

没有答案