Excel OleDb中的CA2100安全警告选择查询

时间:2014-09-30 13:21:29

标签: c# excel code-analysis oledbcommand

我们有一个代码块,可以将Excel文件中第一张工作表的内容读取到DataTable。我们知道第一张表中的数据是表格形式的,所以没问题。

我们的开发环境:VS 12,C#。

相关的代码行如下:

OleDbCommand objCmdSelect =
    new OleDbCommand("SELECT * FROM [" + sheetName + "]", objConn);

其中变量sheetName是第一个工作表的名称。 objConn是连接对象。

但是,该行提供了CA2100"审查SQL查询的安全漏洞"代码分析中的警告,由于我们的字符串连接。 AFAIK,表名不能参数化。我提出的解决方案:

1)切换到Microsoft的Excel库。但这比较慢(是吗?)。

2)取消警告。实际上并不想要它。

这种情况是否有更好的解决方案或最佳做法?

1 个答案:

答案 0 :(得分:0)

确保sheetName实际上是工作表的名称,并且要么已正确转义,要么不包含特殊字符。然后只是压制警告。