c# - 如何处理 DBNull 值
问题描述
dataGrid.DataSource = customDS.customDT.AsEnumerable()
.GroupBy(r => r.Field("someID"))
.Select(g => {
CustomDS.customRow row = customDS.customDT.NewcustomRow();
row["someID"] = g.Key;
row["Tradingdate"] = g.First().Tradingdate;
row["MemberNo"] = ((object)g.First().MemberNo == DBNull.Value) ? "a" : "b";
row["Amt"] = (decimal?)g.Sum(r => r.Field("Amt"));
return row;
}).CopyToDataTable();
我有上面的代码抛出异常,因为MemberNo
在. 在上述情况下,我不明白已经通过转换为对象并与 DBNull 进行比较来显式应用检查,并将硬编码为字符串或DBNull
customDT
a
b
解决方案
您可以像这样处理 DBNull 值:
row["CancelledDate"] == DBNull.Value ? (DateTime?)null :
Convert.ToDateTime(row["CancelledDate"]);
推荐阅读
- node.js - 使用 openssl 和 node.js 验证签名
- spring-boot - 无法使用 spring-security-oauth2 和 Tomcat 从 CF 解析 ClientId
- flutter - Facebook无法通过在flutter中安装facebook应用程序登录
- algorithm - 16 位哈希的 FNV_1a 参数是什么?
- android - 开发服务器在运行 react-native 应用程序时返回响应错误代码:500
- hive - sqoop 导出 - 找不到到 postgres 数据库的 parque 文件异常 - 位置不存在
- python - 检查具有相同名称但在两个不同数据帧中的列下的名称是否匹配的最佳代码是什么?在 python 中,使用熊猫?
- c# - UWP 蓝牙 RfComm - System.Exception
- javascript - 如何在谷歌云功能中加载结构客户端证书?
- perl - 需要帮助确定某些 Perls 命令的用途