我们有一个代码块,可以将Excel文件中第一张工作表的内容读取到DataTable。我们知道第一张表中的数据是表格形式的,所以没问题。
我们的开发环境:VS 12,C#。
相关的代码行如下:
OleDbCommand objCmdSelect =
new OleDbCommand("SELECT * FROM [" + sheetName + "]", objConn);
其中变量sheetName是第一个工作表的名称。 objConn是连接对象。
但是,该行提供了CA2100"审查SQL查询的安全漏洞"代码分析中的警告,由于我们的字符串连接。 AFAIK,表名不能参数化。我提出的解决方案:
1)切换到Microsoft的Excel库。但这比较慢(是吗?)。
2)取消警告。实际上并不想要它。
这种情况是否有更好的解决方案或最佳做法?
答案 0 :(得分:0)
确保sheetName实际上是工作表的名称,并且要么已正确转义,要么不包含特殊字符。然后只是压制警告。