小编Nic*_*rAZ的帖子

使用WHERE子句将OLE CALL转换为Excel

我正在修复一个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中提取数据行?

.net c# oledb excel ado.net

5
推荐指数
1
解决办法
9803
查看次数

标签 统计

.net ×1

ado.net ×1

c# ×1

excel ×1

oledb ×1