我有这个组合框

BindingSource srd = new BindingSource();
srd.DataSource = llenar.Tables["cnae"];
CmbCnaePrin.DataSource = srd;
CmbCnaePrin.DisplayMember = "cnae_descricao";
CmbCnaePrin.ValueMember = "cnae_id";


我想加载这个

int cnaepr;
DataTable dt3 = new DataTable();
dt3 = ifd.cnaeclas(cnaepr);
txtCnaeC.Text = dt3.Rows[0][2].ToString();
txtCnaeSC.Text = dt3.Rows[0][3].ToString();


但我不能转换

 cnaepr=Convert.ToInt32(CmbCnaePrin.SelectedValue)


返回此错误。无法将类型为“ System.Data.DataRowView”的对象转换为类型为“ System.IConvertible”的对象。

最佳答案

尝试在SelectedValue属性上调用ToString():

cnaepr=Convert.ToInt32(CmbCnaePrin.SelectedValue.ToString());


该错误几乎与它所说的完全一样。 SelectedValue属性的设计非常通用,因此可以是您在DataTable中可以找到的任何内容。其中大部分可能不是“可转换”类型(实现IConvertible)。

关于c# - 无法将Int转换为int fo组合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13034467/

10-09 09:51