从excel读取数据时遇到问题。如果单元格为空,我得到异常“无法将类型'System.DBNull'的对象强制转换为'System.String'”我已经研究了stackoverflow并发现DBNullValues可以转换,我尝试了这个建议,但我的程序抛出甚至在它调用转换DBValues的方法之前就是一个例外。有什么建议吗?
int A = reader.GetOrdinal("A");
foreach (DbDataRecord record in reader)
{
string foo = ConvertFromDBVal<string>(record.GetString(A));
}
}
catch
{
}
conn.Close();
return AllConnections;
}
public static T ConvertFromDBVal<T>(object obj)
{
if (obj == null || obj == DBNull.Value)
{
return default(T);
}
else
{
return (T)obj;
}
}
答案 0 :(得分:2)
您正在调用sample_name gender chemotherapy clinical_subtype color.gender
sample_01 M alk 1 #8DA0CB
sample_02 F tmz 2 #FC8D62
sample_03 M rad 2 #8DA0CB
sample_04 M rad.tmz 4 #8DA0CB
sample_05 F tmz 3 #FC8D62
,我希望 失败,因为它正在尝试执行转换为字符串。您应该能够在堆栈跟踪中看到它。相反,请使用record.GetString
:
record.GetValue
然后在它到达您的方法之前不会执行任何转换。