【问题标题】:Overwrite previous checkbox value on button click单击按钮时覆盖先前的复选框值
【发布时间】:2015-07-30 04:05:03
【问题描述】:

我正在使用“是”和“否”保存复选框值,我的问题是我有一个按钮单击,允许用户更改值。

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

这是我原来要保存的信息:

     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();
    }

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

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

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

谢谢

【问题讨论】:

  • 一个错误,请详细说明? Char 数据类型如何被分配一个 bool 值?
  • 请显示/告诉错误信息和产生错误的代码
  • 您是要修改复选框控件上的复选框值还是数据库值?
  • 你好@Pseudonym,我正在寻找修改数据库中的复选框值。
  • 您将privateItem 设置为字符串,但随后使用Private.Checked 作为参数的值...看起来是个错误

标签: c# html sql .net checkbox


【解决方案1】:

我对您的要求并不完全清楚,因此我的回答提供了两种可能的解决方案:

如果您想修改控件本身是否被选中,这里有一段来自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(); 
 }

如果您希望修改表中的列,则此处可以使用 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();
    }
}

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

【讨论】:

    猜你喜欢
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多