c# – 有一种比较可空和可以为空的对象的简洁方法吗?
发布时间:2020-12-15 08:45:05 所属栏目:百科 来源:网络整理
导读:我有这样的代码: foreach (DataRow row in dataTable.Rows){ if ((string)row["Forename"] != record.Forename) { // Do something }} 工作得很好,但是如果数据库中的row [“Forename”]为空,那么它实际上是DBNull,它不能将DBNull转换为字符串,或者执行DBNu
我有这样的代码:
foreach (DataRow row in dataTable.Rows) { if ((string)row["Forename"] != record.Forename) { // Do something } } 工作得很好,但是如果数据库中的row [“Forename”]为空,那么它实际上是DBNull,它不能将DBNull转换为字符串,或者执行DBNull和string之间的比较.有些值也是可以为空的< int>,它无法将DBNull与int进行比较? 有没有帮助方法让我做好比较,还是我必须自己写一个扩展方法? 解决方法
您可以使用支持可空类型的
DataRow.Field 扩展方法:
foreach (DataRow row in dataTable.Rows) { int? id = row.Field<int?>("ID"); if(id.HasValue) { Console.Write("ID: " + id.Value); } } 由于string是引用类型,因此默认情况下它将为null.您可以使用 foreach (DataRow row in dataTable.Rows) { if(row.IsNull("Forename")) { // ... } else { string foreName = row.Field<string>("Forename"); Console.Write("ForeName: " + foreName); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |