无法将“System.Data.DataRowView”类型的对象强制转换为“System.IConvertible”类型

时间:2012-02-24 10:27:07

标签: c# .net windows-applications

我在C#Code

中使用
int i = Convert.ToInt32(ddlDivisionId.SelectedValue);

当时这种类型的错误累积起来..

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

我该如何解决?

请帮忙

3 个答案:

答案 0 :(得分:6)

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

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

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

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

答案 1 :(得分:4)

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

添加.ToString,最后它将起作用

答案 2 :(得分:1)

如果你填写组合框,
将第一行移至最后一行:
之前

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

之后

cbo.DisplayMember = "name";
cbo.ValueMember = "id";
cbo.DataSource = dt;