-1

我需要数据表中的特定列将其绑定到 DataGridView 中。我有以下专栏。

Work1 价格 面积 que Len bre 尺寸
A 12 x 1 1.2 1 1.2
A 12 y 2 2 2.2 4.4
A 12 z 3 11 1 11

以上是我的数据表,我需要指定列,即Area、Que、bre、size [Que * (bre * Len)]
为了获得我在 Linq-to-DataTable 查询之后使用的这种类型的数据。

 var data = dt.AsEnumerable().Select
                (r => new
                {
                    Area = r.Field<string>("Area"),
                    Que = r.Field<int>("Quantity"),
                    Breath = r.Field<decimal>("Breath"),
                    Length = r.Field<decimal>("Length"),
                    totLen = r.Field<int>("Quantity") * (r.Field<decimal>("Breath") * r.Field<decimal>("Length"))
                }).ToList();

但是它不起作用,它没有价值,我不知道为什么?谁能告诉我该怎么做?如果有任何其他替代选项可用,我很乐意看到......

4

1 回答 1

0

它给出错误“指定的演员表无效。”

所以你得到了一个InvalidCastException扩展Field方法。

您必须检查哪一列的类型与您指定的类型不匹配,例如:

totLen = r.Field<int>("Quantity") * r.Field<decimal>("Breath") * r.Field<decimal>("Length")

如果三列中的任何一列的类型与您提供的类型不同,则上述操作将失败。也许Breath不是 adecimal而是 a double

编辑您的问题并提供数据库中的类型,我们可以帮助识别正确的类型。

于 2013-01-21T12:20:58.067 回答