当前位置:  开发笔记 > 编程语言 > 正文

在C#中从返回的DataRow开始使用类型的推荐方法是什么?

如何解决《在C#中从返回的DataRow开始使用类型的推荐方法是什么?》经验,为你挑选了1个好方法。

循环遍历DataRow并遇到诸如的类型

DataRow dr;
dr["someString"]
dr["someInteger"]
dr["somedata"]

将它们纳入相应数据类型的最佳方法是什么?dr ["foo"]只是一个通用对象.

另外,这些是否可以轻松转换为可空类型?dr ["someInteger"]可能为null.



1> Pierre-Alain..:

从DataRow读取时,您最大的敌人是空值.在a中DataRow,当值为null时,它不等于null:它等于DBNull.Value.

if(DBNull.Value == null)
{
   // Will never happen
}

除非你知道你的字段不能为空,否则施放是不安全的.例如,如果数据为DBNull,则以下示例将失败:

string name = (string)dr["Name"];

如果可以使用LINQ扩展,则可以包含引用System.Data.DataSetExtensions和命名空间System.Data以及调用

string name = dr.Field("Name");

如果你不能使用LINQ,那么你必须回过头来检查null值

string name = null;
if(!dr.IsNull("Name"))
    name = (string)dr["Name"];

或者您可以像这样编写自己的Field函数:

public static T GetValue(object value)
{
    if (value == null || value == DBNull.Value)
        return default(T);
    else
        return (T)value;
}

并以这种方式获得你的价值:

string name = GetValue(dr["Name"]);

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有