如何将组合框的选定值转换为整数?

4 c# combobox winforms

我有一个由数据源填充的组合框(值和id)

comboBox_Degree.DataSource = ds.Tables["Field"];`
comboBox_Degree.DisplayMember = "Field_Degree";
comboBox_Degree.ValueMember = "Field_ID";
Run Code Online (Sandbox Code Playgroud)

现在我想在SelectedIndexChanged事件发生时检索id.但是当我把它转换为int时,我有这样的错误.

int fid = Convert.ToInt32(comboBox_Degree.SelectedValue.ToString());
Run Code Online (Sandbox Code Playgroud)

错误:

输入字符串的格式不正确.

如何将此值转换为整数?

Avi*_*via 8

用这个:

int fid;
bool parseOK = Int32.TryParse(comboBox_Degree.SelectedValue.ToString(), out fid);
Run Code Online (Sandbox Code Playgroud)


Joh*_*don 5

我经常这样做

int fid=0;
try {
     fid=int.Parse(comboBox_Degree.SelectedValue.ToString());
    } catch (Exception e)
    {
     //Whatever you want to do when it is not an int
    }
Run Code Online (Sandbox Code Playgroud)

  • 偏好比什么都重要.我通常想记录一个错误,我会把它放在catch中,但我想我可以把bool做一个if(!parseOK)然后写我的日志.关于异常捕获的好处是你可以捕获e.Message或e.StackTrace并写入日志.有时很有用,但解析整数可能不那么有用. (4认同)