在 SqlDataRecord 中将小数转换为浮点数时出错
Error in converting decimal to float in a SqlDataRecord
我有一个 SqlMetaData 数组定义为:
SqlMetaData[] _TvpSchema = new SqlMetaData[]{
new SqlMetaData("Duration", SqlDbType.Float)
};
SqlDataRecord 为:
SqlDataRecord _DataRecord = new SqlDataRecord(_TvpSchema);
并将此记录填写为:
_DataRecord.SetFloat(4, (float)obj.Duration);
其中 obj.Duration 是 十进制类型 并且值为 0。我在上面的行中收到 Invalid Cast 异常。我也试过Convert.ToSingle,但得到了同样的错误。在这种情况下我可能做错了什么?
A SQL Float
是一个 .Net double
according to SqlDbType
documentation。如果您确实需要使用 .Net float
,请使用 SQL Real
类型,否则,只需使用 SetDouble
并将您的 decimal
转换为 double
.
我有一个 SqlMetaData 数组定义为:
SqlMetaData[] _TvpSchema = new SqlMetaData[]{
new SqlMetaData("Duration", SqlDbType.Float)
};
SqlDataRecord 为:
SqlDataRecord _DataRecord = new SqlDataRecord(_TvpSchema);
并将此记录填写为:
_DataRecord.SetFloat(4, (float)obj.Duration);
其中 obj.Duration 是 十进制类型 并且值为 0。我在上面的行中收到 Invalid Cast 异常。我也试过Convert.ToSingle,但得到了同样的错误。在这种情况下我可能做错了什么?
A SQL Float
是一个 .Net double
according to SqlDbType
documentation。如果您确实需要使用 .Net float
,请使用 SQL Real
类型,否则,只需使用 SetDouble
并将您的 decimal
转换为 double
.