如何管理将 DateTime 的 null 对象解析为 DBNULL 与 ADO.NET 一起使用

2024-07-04

我有两个 DateTime 对象,BirthDate 和 HireDate。它们被正确格式化为字符串,当我将它们传递到数据访问层时,需要将它们解析为 DateTime 对象。

DateTime hD = DateTime.Parse(hire);            
DateTime bD = DateTime.Parse(birth);

//incase of a datestring being passed through
dateStringPassed = "7/2/1969";

但有时,弦hire and birth为空或为空"",如果代码像这样运行,我会从解析空字符串中收到 FormatException 错误。如何管理空解析并允许 DateTime(如果为空或为 null)被接受为DBNull.Value?

我仍然无法管理,如果用户不传递 DateTime 字符串,则解析会使我的代码崩溃。

我的出生日期参数如下,检查变量是否为 null,然后使用 DBNull.Value。


The Parse方法无法处理空字符串,但您可以使用可为空的 DateTime 并执行如下操作:

DateTime? hD = String.IsNullOrEmpty(hire) ? (DateTime?)null : DateTime.Parse(hire)

但更安全的是使用TryParse反而:

DateTime? hD = null;
DateTime.TryParse(hire, out hD);

然后为了存储这个值,您可以测试hD.HasValue:

if(hD.HasValue) { /* use hD */ }
else { /* else use DBNull.Value */ }

从 C# 7 开始,您可以对内联输出参数使用更短的语法,并且可以完全避免可空类型:

if (DateTime.TryParse(hire, out var hD)) { /* use hD */ }
else { /* use DBNull.Value */ }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何管理将 DateTime 的 null 对象解析为 DBNULL 与 ADO.NET 一起使用 的相关文章

  • 调用 std::adjacent_difference() 时的隐式转换

    我想获得相邻之间距离的向量points在向量中 struct Point double x y z vector
  • 哪个STL容器具有线程安全的插入过程?

    哪个STL容器具有线程安全的插入过程 我希望多个线程同时插入同一个容器中 欢迎除 STL 即 Boost 之外的任何实现 STL 容器不是线程安全的 如果您愿意的话 您必须通过自己的同步来强加这一点
  • 如何从我的应用程序在用户默认浏览器中启动 URL?

    如何在桌面应用程序中添加一个按钮 使用户的默认浏览器启动并显示应用程序逻辑提供的 URL Process Start http www google com
  • 对 .NET Remoting CAO 的暴力攻击

    我正在尝试使用 NET 远程客户端激活对象来在多次调用期间保留客户端的身份验证信息 而不是实现需要客户端在每次调用中发送会话 ID 的会话管理系统 正如 MSDN 所说 当客户端使用 new 运算符提交对服务器对象的请求时 激活请求消息将发
  • 预期主表达式在“...”之前,C++ 编译错误

    SO 上有很多类似标题的帖子 但它们似乎是由各种语法错误触发的 而且我还没有看到一致的模式 using namespace std class A public A int a a a int a int main A x 3 A y 0
  • XAML 页面中的 Bindable 值存在问题

    我有一个保龄球回顾示例代码 其中输入了 3 场比赛并总结在系列列中 我遇到的问题是系列列没有按照我的预期进行更新 显然 我做错了什么 但看不到我做错了什么 以下是支持该应用程序的代码
  • 如何有效计算灰度图像中像素的平均“方向”?

    所以我发现我可以将图像转换为灰度图像 如下所示 public static Bitmap GrayScale this Image img var bmp new Bitmap img Width img Height using var
  • 我如何知道我的电子邮件是否已使用 Asp.net 被接收和阅读

    我需要知道如何查询已发送的电子邮件状态 Asp net中有没有特殊的类来实现这个功能 如果没有 你知道这样做的方法吗 如果您正在使用System Net Mail命名空间 您可以向电子邮件添加标头以请求已读回执 message Header
  • 如何使文本框的自动完成列表可编辑?

    我有一个包含很多内容的应用程序TextBox使用自动完成的控件 每个人都使用AutoCompleteMode CustomSource从关联的获取自动完成文本AutoCompleteStringCollection 每当用户在其中输入新值时
  • pthread 线程状态

    是否有一种机制可以用来判断 pthread 线程当前是否正在运行或已退出 如果线程尚未退出 pthread join 是否有一种方法能够在特定时间段后超时 如果您仅针对 Linux 请使用http www kernel org doc ma
  • 在 C# 中捕获异常

    我有一个简单的添加按钮 ADD Click 代码是 protected void Add Click object sender EventArgs e string strConnectionString ConfigurationMan
  • 通过“this->member”访问c++成员类比隐式调用“member”更快/更慢

    经过我们的朋友谷歌搜索后 我无法得到以下观点的明确看法 我习惯这样称呼班级成员this gt 即使不需要 我发现它更明确 因为它在维护一些带有大量变量的繁重算法时很有帮助 当我正在研究一种应该优化的算法时 我想知道是否使用this gt 是
  • 收据在打印文档中有重叠文本

    我正在 POS 项目中创建打印收据并附上输出的图片 我的问题是描述 数量 价格 金额的重叠 如何在这段代码的下一行显示数量 价格和金额 e Graphics DrawString Description new Font trebuchet
  • OpenCV 图像处理——C++、C、Python

    我正在考虑在一个项目中尝试 OpenCV 并注意到它有 C C 和 Python 我正在尝试确定是否应该使用 C C 还是 Python 并且希望使用具有最佳 OpenCV 支持的任何语言 仅从查看各种文档的索引页来看 C 绑定可能比其他绑
  • 创建新选项卡并管理它们 - Selenium

    这是我的代码 var chromeOptions new ChromeOptions chromeOptions AddArguments headless driver new OpenQA Selenium Chrome ChromeD
  • 如何通过参数包传递引用?

    我有以下代码 include
  • 如何在 JObject 中添加或更新 JProperty 值

    我目前正在使用以下扩展方法来执行此任务 但似乎应该有一些现有的包含方法或扩展来执行此任务 或至少是其中的一个子集 如果里面没有任何东西Json NET那么推荐的流程是什么 或者我如何更改下面的代码以更接近推荐的流程 public stati
  • PHP 使用正则表达式分解字符串

    我有一个长字符串 由一系列用单引号分隔的句子组成 Example This s sentence number 1 This s sentence number 2 请注意 该字符串的句子本身有单引号部分 这些部分已被转义 我需要使用单引号
  • .NET 中是否有任何集合可以防止空条目?

    我特别考虑的是履行一套合同的集合 但我认为这个问题可以适用于任何类型 NET 框架中是否存在可以防止空条目的集合 我想要的具体行为是这样的 var set new HashSet bool added set Add null Consol
  • 谷歌模拟 - 我可以在同一个模拟对象上多次调用 EXPECT_CALL 吗?

    如果我打电话EXPECT CALL在同一个模拟对象上两次TEST F 会发生什么 期望是否附加到模拟对象中 或者第二次调用是否消除了第一次调用的效果 I found 后子句 https github com google googletes

随机推荐

  • 在 C# 中:按事件使用 -= 运算符意味着什么?

    我们什么时候必须通过事件使用这个运算符 它的用途是什么 正如 为您订阅事件处理程序一样 取消订阅它 当您不再希望在引发事件时调用特定处理程序时 请使用它 您通常只需要使用它 引发事件的组件在逻辑上比事件处理程序的生命周期更长 如果您不取消订
  • 如何使用 type='json' 在 Odoo 控制器中获取 JSON 数据?

    几天前我在这里做了一个类似的问题 如何在 Odoo 控制器中获取 JSON 数据 https stackoverflow com questions 35913866 how to get json data in an odoo cont
  • 如何模拟我正在测试的函数所使用的函数的默认参数?

    我有这个my module py def sub function do the thing True if do the thing do stuff else do something else def main function do
  • 如何将函数发送到远程 Pyro 对象

    我正在尝试使用 Pyro 设置一些代码来处理远程主机上的 python 代码函数并获取结果 启动名称服务器后 我将在远程主机上执行此代码 实际上仍在本地主机上 import Pyro4 class Server object def eva
  • 将 WPF DLL 加载并运行到另一个 WPF exe 中

    我的主要问题正如我在标题中所述 WPF APP1 gt 我在排除 App xaml 后创建了此 wpf 项目的 dllWPF APP2 gt 普通 WPF exe 需要运行上面的WPF APP1 dll并使用反射打开WPF APP1 Mai
  • 通过 AJAX 调用的 PHP header() 无法正常工作

    我是网络开发新手 现在我正在开发网站上的登录功能 我使用 Javascript AJAX 获取用户名和密码并将其发送到 PHP 文件以在 MYSQL 数据库上进行验证 这就是我要做的 我的问题是为什么 header 函数不能正常工作 我想在
  • 如何禁用 Mapbox 中的事件侦听器?

    我正在尝试使用 React 上的 Mapbox 来控制图层上的事件侦听器 map off 应该可以做到这一点 但它并没有删除图层中的 onclick 事件 https docs mapbox com mapbox gl js api map
  • 将事件传递给父级

    我想创建一个应用程序 其中一些事件应该被处理 就像它们被传递到父容器一样 例如我有一个JPanel其中包含JLabel 顶端JPanel现在实现鼠标按下和拖动 我需要做什么 才能使事件看起来像他们到达的那样JPanel而不是标签本身 更改源
  • 在 iOS 模拟器上重复请求麦克风权限

    我正在使用 Xcode 10 1 10B61 开发一个需要使用麦克风权限的应用程序 几乎 每次我从 Xcode 在模拟器中 启动应用程序时 我都会收到一个系统弹出窗口 Appname 想要访问麦克风 隐私 麦克风使用说明 gt 我选择 不允
  • Cassandra 对具有不同分区键的表的批量查询性能

    我有一个测试用例 每秒从客户端收到 150k 请求 我的测试用例需要插入UNLOGGED batch 多个表并具有不同的分区键 BEGIN UNLOGGED BATCH update kspace count table set count
  • 将 INT_MAX 转换为浮点数,然后再转换回整数。

    在 C 编程中 我发现了一个奇怪的问题 它违背了我的直觉 当我声明一个integer as the INT MAX 2147483647 在limits h中定义 并将其隐式转换为floatvalue 它工作正常 即浮点值与最大整数相同 然
  • 从流中读取 Excel 文件

    我需要一种从流中读取 Excel 文件的方法 它似乎不适用于 ADO NET 的处理方式 该场景是用户通过 FileUpload 上传文件 我需要从文件中读取一些值并导入到数据库中 由于几个原因我can t将文件保存到磁盘 也没有理由这样做
  • 如何使用远程机器人从服务器发送文件?

    我制作了一个机器人 它通过 URL 从外部服务器发送文件 我希望机器人直接从您的服务器发送文件 我究竟做错了什么 为什么没有open 指挥工作 import telebot bot telebot TeleBot Token bot mes
  • 创建 Jar 文件 - 在其他计算机上不起作用

    我正在尝试将我的程序打包成 JAR 文件 以便可以在多台计算机上使用 我的程序由以下部分组成start java userinterface java and writer java 该程序是用 Eclipse 编写的 在我的计算机上运行得
  • 在 pandas DataFrame 中查找列值最大的行

    如何找到特定列的值所在的行maximal df max 会给我每列的最大值 我不知道如何获取相应的行 使用熊猫idxmax https pandas pydata org pandas docs stable reference api p
  • 并行处理 Azure blob 和批量复制到 SQL 数据库的设计帮助

    我需要从 Azure 存储中获取 blob 文件 读取它们 获取数据并处理它 然后将其存储到数据库中 从 blob 获取的数据量很大 即每个文件大约有 40K 条记录 一个文件夹中有70个这样的文件 我是这样设计的 I use Parall
  • 在 NDB 中跟踪未知类型的反向引用

    我正在 GAE 和 Python 2 7 运行时上编写我的第一个 RESTful Web 服务 我已经开始使用 Guido 闪亮的新 ndb API 但是 我不确定如何在没有原始数据库 API 的隐式反向引用功能的情况下解决特定情况 如果用
  • 将第三方 JS 和 CSS 库与我的项目资产打包在一起有好处吗?

    我想开始使用缩小工具 例如Minify http code google com p minify Uglify https github com mishoo UglifyJS or Closure https developers go
  • 邮递员 Twilio Rest Api

    您好 我想知道是否有人可以帮助我 我正在尝试使用 twilios 的 Rest api 但遇到了一些麻烦 MyAccountIdSid mySid和电话号码是在实际请求中填写的 是不是我做错了什么 我收到您的 AccountSid 或 Au
  • 如何管理将 DateTime 的 null 对象解析为 DBNULL 与 ADO.NET 一起使用

    我有两个 DateTime 对象 BirthDate 和 HireDate 它们被正确格式化为字符串 当我将它们传递到数据访问层时 需要将它们解析为 DateTime 对象 DateTime hD DateTime Parse hire D