【发布时间】:2019-10-23 14:45:28
【问题描述】:
我有一些数据类型为十进制的数据库字段,但它是 db 空字段。 所以,我想对这些字段做一些条件,但在与任何其他十进制值(例如 0.00)进行比较之前,我必须将这些字段转换为十进制,但我不知道如何将数据库空字段转换为十进制。
例如: 我有这两个字段。
string ltl_net_rate = Data.Fields["ufc_oe_pick_ticket_ud_wt_freight_out_net_plus"].FieldValue;
string total_shipment_weight = Data.Fields["ufc_oe_pick_ticket_ud_wt_pick_ticket_weight"].FieldValue;
然后我想做
if (ltl_netplus_rate_new < ltl_net_rate_new) then do something
if (ltl_net_rate_new < 0 || ltl_netplus_rate_new < 0) then do something
我使用了Convert.Todecimal,但它给了我输入字符串格式不正确的错误消息。
然后我知道这是 db 空字段,因此 Convert.Todecimal 无济于事。
谁能帮我解决这个问题?
【问题讨论】:
-
添加检查以查看其是否为空。我会添加您如何做到这一点,但我不知道 Data 或 Fields 或 FieldValue 是什么类型以及您如何填充它。如果您需要更多帮助,我建议您添加 minimal reproducible example 或搜索 DBNull 检查 + 您在此处使用的任何类型。
-
decimal something = decimal.TryParse(Data.Fields["ufc_oe_pick_ticket_ud_wt_freight_out_net_plus"].FieldValue?.ToString(), out decimal myValue) ? myValue : 0;类似的东西(不知道你的类型)。没有可重现的例子,仍然很难给你一个更简洁的例子。 -
Nullable<T>类型会让你前进吗?decimal? ltl_net_rate = ... -
这对我有用。非常感谢
-
您尝试过下面的解决方案可能会有所帮助吗?