在我的数据库中我有DOUBLE PRECESION类型(Postgressql) 在我的查询中,双精度字段可以为null,所以我使这个列表可以为空,但在铸造期间我得到了
"指定的演员表无效"
列表的定义如下:
public List<double?> abb_conv { get; set; }
我在这一行中遇到错误:
_powerConv.abb_conv.Add((double?)dt["abb_conv"]);
其中dt
是Datatable
答案 0 :(得分:1)
您可以从DataRow
对于DataTable,它将如下所示:
foreach (var row in dt.Rows)
{
var value = row.Field<double?>("abb_conv");
list.Add(value);
}
但当然,潜在价值应该是对应的double
类型。
整个清单
List = dt.AsEnumerable().Select(row => row.Field<double?>("abb_conv").ToList();
答案 1 :(得分:1)
让dt
成为数据表,并且您希望获得列abb_conv
的值,请尝试以下操作:
int rowNumber = 0;
_powerConv.abb_conv.Add(dt.Rows[rowNumber].Field<double?>("abb_conv"));
请注意:
如果
以来的数据表dt["abb_conv"]
是dt
,您正在使用的代码(Cannot apply indexing with[] to an expression of type 'DataTable'
)将无法编译 自procedure DoSomethingWithVar(var AField); DoSomethingWithVar(TGUID(nil^).D3); // TGUID and D3 for exposition only :-)