我一直在使用一个程序,我导入2个excel文件,那些excel文件有不同的列名...所以它可能是用户导入错误的excel文件(与其他列名称),我的问题是,我正在使用OledbDataAdapter从excel读取数据,所以我必须指定每列的名称,因此当用户导入错误的文件时程序停止工作(因为程序找不到正确的列来获取数据) .
好的,我的问题是,有没有办法检查特定Excel工作表中是否存在列?因此,如果用户导入的文件中不存在该列,我将能够执行某些操作...
这是我的代码的一部分:
OleDbCommand command1 = new OleDbCommand(
@"SELECT DISTINCT serie FROM [Sheet1$]
WHERE serie =@MercEnInventario AND serie IS NOT NULL", connection);
command1.Parameters.Add(new OleDbParameter("MercEnInventario", MercInv));
string serieN = Convert.ToString(command1.ExecuteScalar());
readerOle = command1.ExecuteReader();
readerOle.Close();
当我尝试为字符串'serieN'赋值时,我得到了OleDbException,因为用户导入的excel文件中不存在列名'serie' .
如果你能帮助我,我会非常感激:)
2 回答
OleDbConnection具有GetOleDbSchemaTable命令,允许您仅检索列列表 . 一个示例代码将是
这将返回一个DataTable,其中填充了列信息(名称,类型等) . 然后,您可以通过Rows集合循环检查“COLUMN_NAME”列,例如
这个怎么样: