3

我在 C# 代码中使用

int i = Convert.ToInt32(ddlDivisionId.SelectedValue);

当时这种类型的错误产生了..

Unable to cast object of type 'System.Data.DataRowView' to type 'System.IConvertible'

我该如何解决?

请帮忙

4

4 回答 4

6

看起来你ddlDivisionId.SelectedValue正在返回一个DataRowView. 我假设您绑定了一个 DataTable 或类似于您的下拉列表(假设这是我们正在查看的内容)。

在这种情况下,您需要将其ddlDivisionId.SelectedValue视为 DataRowView (可能首先转换为该对象)以从中获取价值......我假设如下:

int i = Convert.ToInt32(((DataRowView)ddlDivisionId.SelectedValue)["id"]);

在这里,您应该将“id”替换为您想要作为整数输出的数据表中的字段名称。

于 2012-02-24T10:31:00.597 回答
4
int i = Convert.ToInt32(ddlDivisionId.SelectedValue.ToString());

最后添加 .ToString 它将起作用

于 2016-06-08T08:06:35.710 回答
1

如果填充组合框,
将第一行移到最后:
之前

cbo.DataSource = dt; // this line
cbo.DisplayMember = "name";
cbo.ValueMember = "id";

cbo.DisplayMember = "name";
cbo.ValueMember = "id";
cbo.DataSource = dt;
于 2021-07-04T00:47:03.770 回答
0

试试这个代码我有同样的问题,我得到了这个代码解决

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";



}   
于 2021-12-17T09:18:25.907 回答