单击按钮时覆盖以前的复选框值

Overwrite previous checkbox value on button click

我正在使用 'Yes' 和 'No' 保存一个复选框值,我的问题是我点击了一个按钮,允许用户更改该值。

所以我的逻辑是,如果单击按钮,复选框值“否”将更改为“是”。

下面是我原来要保存的资料:

     public void StoredProcedure()
    {
        string privateItem = Private.Checked ? "Y" : "N";

        connection.connection1();
        if (connection.con.State == ConnectionState.Closed)
            connection.con.Open();
        using (SqlCommand cmd = new SqlCommand("SaveImage", connection.con))
        {
            cmd.Parameters.Add("@privatecheck", SqlDbType.Char).Value = privateItem;

            cmd.ExecuteNonQuery();
            cmd.Parameters.Clear();
        }
        connection.con.Close();
    }

基本上我的数据库中有一个存储过程可以保存我的信息。

现在我想更新一个值基本上是做同样的事情,但它导致了我的错误。

任何关于如何覆盖以前保存的复选框值的帮助都将非常有用!

谢谢

我不是很清楚你的要求,所以我的回答给出了两种可能的解决方案:

如果您想修改控件本身是否被选中,这里有一段来自 MSDN 的示例代码:

private void AdjustMyCheckBoxProperties()
 {
    // Change the ThreeState and CheckAlign properties on every other click. 
    if (!checkBox1.ThreeState)
    {
       checkBox1.ThreeState = true;
       checkBox1.CheckAlign = ContentAlignment.MiddleRight;
    }
    else
    {
       checkBox1.ThreeState = false;
       checkBox1.CheckAlign = ContentAlignment.MiddleLeft;
    }

    // Concatenate the property values together on three lines.
    label1.Text = "ThreeState: " + checkBox1.ThreeState.ToString() + "\n" +
                  "Checked: " + checkBox1.Checked.ToString() + "\n" +
                  "CheckState: " + checkBox1.CheckState.ToString(); 
 }

如果您希望修改 table 中的列,UPDATE SQL 语句将在此处执行此操作,MSDN 有一个关于如何使用 LINQ 的很好的演练和 SQL 来实现这一点,我建议阅读。

但是我看到您正在使用 SqlCommand 所以这里是关于如何从 MSDN:

执行更新命令(再次)的示例代码
private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteNonQuery();
    }
}

以上所有内容应该可以帮助您生成解决方案。