该值(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;
这适用于空的datetime值,实际的datetime值,但不适用于row [10]等于空字符串的情况。
DateTime? temp = DateTime.Parse(row[10].ToString());
d.date_migrate_prod = temp == null ? null : temp;
最佳答案
以下应作为快捷方式:
DateTime? temp = String.IsNullOrEmpty(row[10].ToString())? null : DateTime.Parse(temp0);
关于c# - 从T-SQL返回NULL日期时间值到C#DataTable ==> DataRow中,而不是空字符串中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13000257/