c# - 无法将类型为 'System.DBNull' 的对象转换为类型 'System.String'

标签 c# string datatable datarow

<分区>

我有一个生成字符串的数据代码,它是 sb.ToString()。

DataTable dt = dbaccess.GetDataTable("TEST"); // get datatable
List<DataRow> drlist = dt.AsEnumerable().ToList(); // each row only has one element.
StringBuilder sb = new StringBuilder(); 
foreach (DataRow row in drlist)
{
    foreach (string str in row.ItemArray)
    {
        sb.Append(str);
    }
}

数据表是

NULL
0
138
337
1666
1680
2511
8113

您看到有“NULL”导致错误“无法将类型为‘System.DBNull’的对象转换为类型‘System.String’。 如何解决?

最佳答案

试试这个:

foreach (object str in row.ItemArray) 
{ 
    if (DbNull.Value.Equals(str))
       sb.Append("NULL");
    else
       sb.Append(str.ToString()); 
} 

关于c# - 无法将类型为 'System.DBNull' 的对象转换为类型 'System.String',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10386860/

相关文章:

c# - 发送多媒体指令

string - Jinja2 用空格分割字符串

string - 为 unicode 字母写一个 toUpper 函数

R DT打包按钮下载文件不包含显示表

c# - ClosestIndexOf 的最简单实现

c# - 数字角色 SDK : Transfer EnrollmentForm image to another form

c# - 堆的性能低下。 O(n) 而不是 O(log n)

string - 如何使用CMD拆分字符串

c# - 类似于R中data.frames的数据结构

javascript - 从数据表颜色管理模板中删除按钮