c# - 将多个复选框列表值更新到 SQL DB asp.net C#

标签 c# mysql sql asp.net checkboxlist

我正在使用下面的代码更新 SQL DB 中的一行。循环有效并更新了行,但问题是每次循环时,它只更新一个值,其他值都会被覆盖。因此,最后,它已更新,但不是将多个值输入到相应项目 ID 的表中,而是只为相应项目 ID 输入一个值。我没有收到任何错误。非常感谢任何帮助。

for (int i = 0; i < cbAvailableEntities.Items.Count - 1; i++)
{
    SqlConnection connection = new SqlConnection(connString);
    SqlCommand cmd = new SqlCommand("UpdateProjectEntity", connection);

    using (connection)
    {
        connection.Open();
        using (cmd)
        {
           if (cbAvailableEntities.Items[i].Selected)
            {
               cmd.CommandType = CommandType.StoredProcedure;
                //the following is the Project ID for the row being updated.
               SqlParameter paramPID = new SqlParameter("@ProjectID", nr.ProjectID);
               cmd.Parameters.Add(paramPID);
               nr.Entities = cbAvailableEntities.Items[i].Value;
               cmd.Parameters.AddWithValue("@CorpID", nr.Entities);
               cmd.ExecuteNonQuery();
           }
        }
    }
}

这是存储过程“UpdateProjectEntity”的 SQL 查询

ALTER PROCEDURE [dbo].[UpdateProjectEntity]
    @ProjectID int,
    @CorpID int
AS
BEGIN
    UPDATE [dbo].[ProjectEntity]
    SET
           [CorpID] = @CorpID
     WHERE
           ProjectID = @ProjectID
END

这是我运行程序时的输入和结果的屏幕截图。 These are the checkboxes I am saving to the DB

This is the result after I have saved to the DB

我更改了日期以表明该程序中的其他所有内容均有效。

最佳答案

我可以看到您保存了实体INT,也许您应该将其保存为逗号分隔的字符串。

因此,您可以保存 1,2,3,而不是保存 1

当然,您必须在保存构建和连接字符串之前添加一些逻辑。当您从数据库读取数据并按 ,

进行拆分时,还需要进行一些解析

另一种方法是创建一个关系表来指示所选择的选项。

但是当您删除选择并添加新选择时,这也会出现问题。

ProjectID   CorpID
   1          1
   1          2
   1          3

关于c# - 将多个复选框列表值更新到 SQL DB asp.net C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33000730/

相关文章:

mysql - 在 'case function' 子句中使用 'ON'

sql - 使用 PowerShell 和 SSMS 生成数据播种脚本

sql - 仅包含具有特定列值的第一个条目

mysql - MySQL 中不允许使用反向复合主键

c# - 在 WP7 中发出 http post 请求发送 JSON 文件

c# - ObjectContext 未被垃圾收集

c# - 如何让 nunit-console 在\bin\Debug\而不是\bin\x86\Debug 中查找程序集?

java - 尽管没有外键,Hibernate 如何在一对一关系中匹配实体?

c# - 检查窗体上的按钮单击事件 - C#

python - MySQL 对不在类 GPL 许可下的 Python 的支持