我们有一个代码块,它将Excel文件中第一个工作表的内容读取到DataTable中。我们知道第一张表格中的数据是表格形式,所以没有问题。Excel中的CA2100安全警告OleDb选择查询
我们的开发环境:VS 12,C#。
相关的代码行如下所示:
OleDbCommand objCmdSelect =
new OleDbCommand("SELECT * FROM [" + sheetName + "]", objConn);
其中变量SHEETNAME是第一片材的名称。 objConn是连接对象。
但是,由于字符串连接,该行在代码分析中给出了CA2100“查看安全漏洞的SQL查询”警告。 AFAIK,表名不能参数化。我想出的解决方案:
1)切换到微软的Excel库。但是这个比较慢(是吗?)。
2)禁止警告。实际上不需要它。
有没有更好的解决方案,或者这种情况下的最佳做法?
'sheetName'可以被潜在的恶意用户输入吗?如果不是,那么只是压制警告。 – juharr 2014-09-30 14:37:32