该值(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/

10-13 04:02