C# 如何将combobox字符串值转换为整数,以便在c中解析为mysql数据库#

C# 如何将combobox字符串值转换为整数,以便在c中解析为mysql数据库#,c#,mysql,combobox,C#,Mysql,Combobox,正如标题所示,在选择In-Active时,如何将组合框中的两个字符串值(Active和In-Active)进行转换,将列iActive下数据库列默认值的值从0增加到1。到目前为止,我尝试了Convert.Toint32并将存储过程更改为 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_edit_user` ( pUserID INT(11), pEmployee_Name VARCHAR(15), pUser_Name

正如标题所示,在选择In-Active时,如何将组合框中的两个字符串值(Active和In-Active)进行转换,将列iActive下数据库列默认值的值从0增加到1。到目前为止,我尝试了Convert.Toint32并将存储过程更改为

CREATE 
DEFINER=`root`@`localhost` 
PROCEDURE `sp_edit_user`
(
    pUserID INT(11),
    pEmployee_Name VARCHAR(15), 
    pUser_Name VARCHAR(15), 
    pRole VARCHAR(15),
    piActive INT(1)
)
BEGIN
    UPDATE t_user_auth SET Employee_Name = pEmployee_Name, User_Name = pUser_Name, Role = pRole, iActive = piActive + 1
    WHERE UserID = pUserID;
    END$$
DELIMITER ;
代码是

private void kryptonbtnSaveEdit_Click(object sender, EventArgs e)
{
    var connectionString = ConfigurationManager.ConnectionStrings["Pigen"].ConnectionString;
    using (MySqlConnection cnn = new MySqlConnection(connectionString))
        using (MySqlCommand cmd = cnn.CreateCommand())
        {
            try
            {
                cnn.Open();
                cmd.CommandText = "sp_edit_user";

                cmd.CommandType = CommandType.StoredProcedure;
          //      MessageBox.Show((comboBox1Status.SelectedValue), "");
                cmd.Parameters.AddWithValue("@pUserID", Convert.ToInt64(lbluserID.Text));
                cmd.Parameters.AddWithValue("@pEmployee_Name", txtboxEmploy.Text);
                cmd.Parameters.AddWithValue("@pUser_Name", txtboxuser.Text);
                cmd.Parameters.AddWithValue("@pRole", comboBox2Role.SelectedItem.ToString());
                cmd.Parameters.AddWithValue("@piActive", Convert.ToInt32(comboBox1Status.SelectedValue));

                //if(comboBox1Status.SelectedText != "Active")
                //{
                //    int m = Int32.Parse("In-Active");
                //}

我注意到的是,所有值都从0增加到1,即使选择仍然处于活动状态,可能是从我的存储过程iActive+1。如何将其写入活动中作为值1接受。

可能您可以通过条件运算符执行此操作:

 cmd.Parameters.AddWithValue("@piActive", ((comboBox1Status.SelectedText == "Active") ? 1 : 0));

如果选择了“活动”,则将
@piActive
设置为1,否则将
@piActive
设置为0

不需要将.ToInt32转换为
<代码>1
0
已经是整数。它仅在从活动转换为处于活动状态时有效,但无法从处于活动状态转换回活动状态。为什么使用
iActive=piActive+1
?您现在可以直接使用
iActive=piActive
。是的,我已将其从
iActive=piActive+1
更改为
iActive=piActive
,当您从处于活动状态更改为活动状态时,您无法将其更改回处于活动状态,并且在我的数据库中,默认值为0(活动)