此值 (row[10]) 来自 DataRow 对象,来自 T-SQL 中的 SQL 结果集。我相信它有一个类型“对象”。在我的数据库中,这个特定记录的字段的值为 NULL,但它在我的结果集中返回一个空字符串,而不是空值。我想解决根本问题并让我的结果集返回 NULL 而不是空字符串,但如果这不可能,那么让这段代码更高效就可以了——意思是第一个片段,因为它适用于所有 3案例。
这在 row[10].ToString() 等于空字符串、null 或 DateTime 格式时有效,但我想缩短它。这是我现在的解决方法。
string temp0 = row[10].ToString();
DateTime? temp = null;
if (temp0 == "")
{
temp0 = null;
}
if (temp0 != null)
{
temp = DateTime.Parse(temp0);
}
d.date_migrate_prod = temp == null ? null : temp;
这适用于空日期时间值,即实际的日期时间值,但不适用于 row[10] 等于空字符串时。
DateTime? temp = DateTime.Parse(row[10].ToString());
d.date_migrate_prod = temp == null ? null : temp;