处理 DateTime DBNull

2023-11-23

我在 SO 上看到过很多很多版本,但似乎没有一个能完全满足我的需求。

我的数据来自供应商数据库,该数据库允许日期时间字段为空。首先,我将数据放入数据表中。

using (SqlCommand cmd = new SqlCommand(sb.ToString(), conn))
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
    da.Fill(dt);
}

我正在将 DataTable 转换为 List 进行处理。

var equipment = from i in dt.AsEnumerable()
    select new Equipment()
    {
        Id = i.Field<string>("ID"),
        BeginDate = i.Field<DateTime>("BeginDate"),
        EndDate = i.Field<DateTime>("EndDate"),
        EstimatedLife = i.Field<double>("EstimatedLife")
    }

那么,在这种情况下如何检查 DBNull 呢?我尝试写一个方法。

    public DateTime CheckDBNull(object dateTime)
    {
        if (dateTime == DBNull.Value)
            return DateTime.MinValue;
        else
            return (DateTime)dateTime;
    }

Use IsDBNull()

System.Convert.IsDBNull(value);

或者如果你有SqlDataReader

reader.IsDBNull(ordinal);

并让你的DateTime属性可为空(DateTime?)并设置null的情况下DBNull. Field<T>()会自动执行此操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理 DateTime DBNull 的相关文章

随机推荐

  • 单个 Web 应用程序的多个 DbContext 类。是好是坏?

    拥有多个是一个好习惯吗 XXX DbContextWeb 应用程序的每个主要部分的类 考虑到它是一个大型应用程序 数据库中至少有 50 个表 例如 MembershipContext BlogContext StoreContext 等 或
  • 使用 javascript 对 html 列表进行排序

    我有一组三个列表项 我想在页面加载时自动从高到低显示它们 最好使用 jquery 或 javascript ul class list li 32 li li 170 li li 28 li ul 每个列表项都需要自己的 ID 因为它们都有
  • 存储过程中的经典 ADO 和表值参数

    是否有某种方法可以通过经典 ADO 将表值参数传递给 SQL Server 中的存储过程 经典 ADO 是 COM 和 OLE SQL Native Client 支持 OleDB 上的表值参数 请参阅表值参数 OLE DB 人们必须亲自动
  • spring boot jpa + redis LazyInitializationException

    我使用 spring boot 2 1 2 和 redis 作为缓存提供程序 但现在 我有一个问题 在 sysUser 实体中 Data Entity Table name sys user ToString exclude roles E
  • /accounts/signup/ 处出现 SMTPDataError(553,b'不允许以 webmaster@localhost 进行中继')

    我正在使用 Django 1 7 为了进行身份验证 我使用 Django allauth 为了发送电子邮件 我开始使用 zoho smtp 服务器 它能够发送普通邮件和交易邮件 但无法发送注册会话电子邮件 它显示错误 SMTPDataErr
  • 线程“主”java.lang.NoClassDefFoundError 中出现异常:

    以下程序抛出错误 public class HelloWorld public static void main String args System out println Hello World CLASSPATH C Program
  • AS3 合并多个数组的最快方法

    我正在尝试编写一个可以指定任意数量的数组的函数 并且返回值将是一个包含所有指定数组的内容的数组 我已经这样做了 但这似乎是一种非常缓慢且丑陋的方法 var ar1 Array 1 2 3 4 5 6 7 8 9 var ar2 Array
  • 如何截断 STDIN 行长度?

    我一直在解析一些日志文件 发现有些行太长 无法在一行上显示 因此 Terminal app 善意地将它们包装到下一行 但是 我一直在寻找一种在一定数量的字符之后截断一行的方法 以便终端不会换行 从而更容易发现模式 我编写了一个小的 Perl
  • mysql - 多少列太多?

    我正在设置一个可能有 70 列以上的表 我现在正在考虑将其拆分 因为每次访问表时都不需要列中的某些数据 话又说回来 如果我这样做 我就不得不使用联接 在什么时候 如果有的话 被认为列太多 一旦超过了就被认为太多了数据库支持的最大限制 事实上
  • SVG 中的下标和上标

    我正在尝试使用以下代码使用 SVG 显示下标和上标从这个网站
  • Oracle 将列移动到第一个位置

    有没有办法将 Oracle 表中的列从最后一个位置移动到第一个位置 有人删除了 ID 列并重新创建了它 所以现在它到了最后 这是一个问题 因为我们的一些 PHP 脚本使用第一列作为标识符 一个抽象模型以及超过 100 个其他模型使用这个基础
  • 如何在 Google Colaboratory 中以编程方式清除 Python 输出?

    这个问题特定于 Google Colaboratory 虽然某些解决方案可能在普通的 Python 解释器中工作 但 Google Colaboratory 似乎不允许我以编程方式清除 Python 解释器输出 我已经尝试过但不起作用的解决
  • 再次迭代元组...

    我从事 C 工作已经有一段时间了 但我对模板并不熟悉 最近 我尝试编写一个类来包装std vector
  • 进行 json.dump 时如何显式设置回车符?

    我的 python 脚本生成 json 文件 我必须支持这个Python文件在Windows和Linux上工作 问题是windows和linux上的回车符不同 当我在 Windows 上运行此代码时 它输出 CRLF json 当我在 Li
  • Flutter找不到android sdk

    我刚刚尝试安装 flutter 因为我已经安装了 android studio 和 android sdk 所以我只是按照 flutter 的安装进行操作 这是我的问题 当我跑步时 flutter doctor 它告诉我 Flutter C
  • 在 MVC 中处理多个角色 - 基于操作的辅助功能

    我目前有一个项目 我似乎遇到了有关角色的问题 我想我会得到一些关于如何最好地处理该问题的意见 系统将需要可编辑 灵活的角色 不仅控制特定区域的访问 还控制系统功能的使用 添加用户 编辑用户 查看报告等 系统当前允许用户拥有多个角色 每个角色
  • 黑莓 URL 编码器

    我需要在 Blackberry 中使用 HTTP GET 请求对 URL 进行编码 任何人都可以帮助我找到如何实现这一目标 为什么不使用 RIMURL编码的帖子数据 private String encodeUrl String hsURL
  • 如何在TextureView上使用相机预览录制视频

    我一直在一些 Android 4 0 设备上使用TextureView 例如 我尝试开发一个简单的应用程序 它可以录制视频并使用TextureView进行预览 然而 据我阅读Android API文档 标准MediaRecorder需要一定
  • 编织错误。未找到对象

    我有一个未清理的dataset 所以 我已将其导入到我的 R 工作室 然后当我运行时nrow adult 在 rmarkdown 文件中并按ctrl Enter它有效 但是当我按下knit出现以下错误 Answer recommended
  • 处理 DateTime DBNull

    我在 SO 上看到过很多很多版本 但似乎没有一个能完全满足我的需求 我的数据来自供应商数据库 该数据库允许日期时间字段为空 首先 我将数据放入数据表中 using SqlCommand cmd new SqlCommand sb ToStr