无法将类型对象隐式转换为 int 错误组合框



我最近从 VB 转换了这段代码,如何正确调用组合框cmb_UserID

string strQuery = "";
try
{
    var val = 1;
    val = cmb_UserID.SelectedValue;
    strQuery = "select *from tbl_category where category_id=" + val.ToString + "";
    cmb_UserID.DataSource = c.loadToComboBox(strQuery);
    cmb_UserID.ValueMember = c.loadToComboBox(strQuery).Columns["category_id"].ToString();
    cmb_UserID.DisplayMember = c.loadToComboBox(strQuery).Columns["category_name"].ToString();
}
catch (Exception)
{
}

变量val由于var val = 1赋值,是int类型。 SelectedValue属性是类型object,类型之间的差异会导致给定的异常。

为了规避这一点,您需要显式地将SelectedValue转换为int

val = (int)cmb_UserID.SelectedValue

更新:如果要改用 Int32.TryParse:

var val = 1;
Int32.TryParse(cmb_UserID.SelectedValue.ToString(), out val);

最新更新