2015-05-18 45 views
0

我保存复选框值使用'是'&'否',我的问题是我有一个按钮单击,将允许用户更改值。覆盖上一个复选框的值按钮点击

所以我的逻辑是,如果按钮被点击,那么不是的复选框值将改变为是。

这是我要救原来的信息:

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

基本上我有我的数据库的存储过程,将节省我的信息。

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

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

感谢

+0

出现错误请详细说明? Char数据类型如何分配一个布尔值? – lloyd

+0

请显示/告诉错误消息和生成错误的代码 – Pseudonym

+0

您是否希望修改复选框控件或数据库值上的复选框值? – Pseudonym

回答

0

我是不完全清楚你问那么我的答案给出了两个可能的解决方案:

如果您正在寻找修改控件本身是否被选中或没有到过这里从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(); 
    } 
} 

上述所有片应该可以帮助您生成一个解决方案。