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

时间:2018-03-13 09:26:08

标签: c#

我最近从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)
{

}

1 个答案:

答案 0 :(得分:1)

由于val分配,变量int属于var val = 1类型。 SelectedValue属性的类型为object,类型之间的差异会导致异常。

为了规避这一点,您需要明确地将SelectedValue强制转换为int

val = (int)cmb_UserID.SelectedValue

更新: 如果你想使用Int32.TryParse:

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