我在 C# 代码中使用
int i = Convert.ToInt32(ddlDivisionId.SelectedValue);
当时这种类型的错误产生了..
Unable to cast object of type 'System.Data.DataRowView' to type 'System.IConvertible'
我该如何解决?
请帮忙
我在 C# 代码中使用
int i = Convert.ToInt32(ddlDivisionId.SelectedValue);
当时这种类型的错误产生了..
Unable to cast object of type 'System.Data.DataRowView' to type 'System.IConvertible'
我该如何解决?
请帮忙
看起来你ddlDivisionId.SelectedValue
正在返回一个DataRowView
. 我假设您绑定了一个 DataTable 或类似于您的下拉列表(假设这是我们正在查看的内容)。
在这种情况下,您需要将其ddlDivisionId.SelectedValue
视为 DataRowView (可能首先转换为该对象)以从中获取价值......我假设如下:
int i = Convert.ToInt32(((DataRowView)ddlDivisionId.SelectedValue)["id"]);
在这里,您应该将“id”替换为您想要作为整数输出的数据表中的字段名称。
int i = Convert.ToInt32(ddlDivisionId.SelectedValue.ToString());
最后添加 .ToString 它将起作用
如果填充组合框,
将第一行移到最后:
之前
cbo.DataSource = dt; // this line
cbo.DisplayMember = "name";
cbo.ValueMember = "id";
后
cbo.DisplayMember = "name";
cbo.ValueMember = "id";
cbo.DataSource = dt;
试试这个代码我有同样的问题,我得到了这个代码解决
public Items_form()
{
InitializeComponent();
comboBoxItemSizeCat.DataSource = SCC.AllSizeCategories();
comboBoxItemSizeCat.DisplayMember = "Size Category";
comboBoxItemSizeCat.ValueMember = "num";
}
private void comboBoxItemSizeCat_SelectedIndexChanged(object sender, EventArgs e)
{
int i;
Int32.TryParse(comboBoxItemSizeCat.SelectedValue.ToString(),out i);
comboBoxItemSize.DataSource = SC.AllSize_accordingto_size_cat(i);
comboBoxItemSize.DisplayMember = "Size Name";
comboBoxItemSize.ValueMember = "Size Code";
}