提问者:小点点

根据所选组合框将bool值插入MySQL


我在WinForms中有这样的组合框:

我有这样的增值。。。

在所选值上,我想在MySQL中插入一个bool值(yes表示true-nofalse)

问题:

根据组合框的选定值插入布尔值的正确方法是什么?

当前代码

    public void UpdateData()
    {
        try
        {
            using (var conn = new MySqlConnection(ConnectionString.ConnString))
            {
                string updateQuery = "INSERT INTO customer_complaints_actions " +
                    "(complaint_id,value " +
                    "VALUES " +
                    "(@complaint_id, @value)";

                using(var connect = new MySqlConnection(ConnectionString.ConnString))
                {
                    using(var cmd = new MySqlCommand(updateQuery, connect))
                    {
                        connect.Open();
                        cmd.Parameters.AddWithValue("@complaint_id", Convert.ToInt32(ComplaintsDataGrid.SelectedRows[0].Cells[0].Value.ToString()));
                        cmd.Parameters.AddWithValue("@value", value.SelectedItem); // Need to alter
                        cmd.ExecuteNonQuery();
                    }
                }
            }
        }
        catch(Exception ex)
        {
            MessageBox.Show($"Error: {ex.ToString()}", "Failed", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }
    }

共2个答案

匿名用户

您可以在将数据添加到查询时放置一个条件表达式:

cmd.Parameters.AddWithValue("@value", value.SelectedItem == "Yes");

匿名用户

可以在insert语句中放置条件表达式:

INSERT INTO customer_complaints_actions (complaint_id,value)
VALUES (@complaint_id, @value = 'Yes')

在MySLQ中,条件@value='yes'的计算结果为1,如果条件为true,则为0