我有一个数据代码来生成一个字符串,即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'。 如何解决?
答案 0 :(得分:4)
试试这个:
foreach (object str in row.ItemArray)
{
if (DbNull.Value.Equals(str))
sb.Append("NULL");
else
sb.Append(str.ToString());
}
答案 1 :(得分:1)
更改循环:
foreach(var obj in row.ItemArray)
{
if(obj is string) sb.Append(obj as string);
}
答案 2 :(得分:1)
if(!row.IsNull("column"))
{
foreach (string str in row.ItemArray)
{
sb.Append(str);
}
}