工具:VS2019
项目类型:C# Windows 窗体应用(.NET Framework)
框架:.NET Framework 4.5
功能简述:读取“.XLSX”格式表格,获取数据,转换为DataTable格式
报错界面:
报错代码:
dt = ds.Tables[0]; //dt是DataTable 类型数据,ds是DataSet类型
原因一:ds为空(如上图所示)
原因二:ds不为空,但是ds中没有表(Table)
原因排查:
外部检查:
(一)Excel 是否真实存在数据
(二)Excel中是否存在列的列名是重复的,这会导致ds添加行的时候添加失败
代码检查:
(一)多使用try{...}catch{...}语句
try
{
dt= ds.Tables[0];
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
But,如果仅仅是上面的代码,是排查不出ds为空的情况的,还是会报错,上面的写法只能排除ds.table层的错误,所以还是要加个判断条件:
try
{
if (ds != null)
{
dt= ds.Tables[0];
}
else
{
MessageBox.Show("ds为空");
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
当然,像我前面第一张图,报错信息直接给出"ds为空"那是最好的