我正在修复一个C#项目,该项目使用带有数据定义的Excel工作表来创建SQL Server中批量插入使用的.fmt文件.
我的问题是Excel文件有时在底部有空白行,而我正在处理的C#解析器将检测多个行,这些行优于包含数据定义的实际行数.
因此,fmt文件在其第二行上具有更多行,并且批量插入在到达底部并尝试继续读取时抛出异常.
例如,只有50行数据和50行空行.fmt文件的第二行将有一个100(第一行是SQL Server版本).第3行到第52行是50行数据定义.当批量插入尝试到达第53行时,它会返回一些列异常.
C#解析器使用Ace OleDB 12连接到Excel 97格式文件.
SQL是:
var commandText = string.Format("SELECT * FROM [{0}$]", SpreadSheetName);
Run Code Online (Sandbox Code Playgroud)
我试图在SQL代码中添加一个WHERE子句,只选择具有非空"A"列的行,但这不起作用.
SELECT * FROM [{0}$] WHERE [A] <> ''
Run Code Online (Sandbox Code Playgroud)
是否有一种方法可以使用某些SQL代码增强命令文本,以便仅在满足特定条件的情况下从Excel中提取数据行?