单击按钮时覆盖以前的复选框值
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();
}
}
以上所有内容应该可以帮助您生成解决方案。
我正在使用 '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();
}
}
以上所有内容应该可以帮助您生成解决方案。