У нас есть блок кода, который считывает содержимое первого листа в файле Excel в DataTable. Мы знаем, что данные на первом листе представлены в табличной форме, так что проблем нет.
Наша среда разработки: VS 12, C#.
Соответствующая строка кода выглядит следующим образом:
OleDbCommand objCmdSelect =
new OleDbCommand("SELECT * FROM [" + sheetName + "]", objConn);
где переменная sheetName — это имя первого листа. objConn — это объект подключения.
Однако эта строка выдает предупреждение CA2100 «Проверить SQL-запросы на наличие уязвимостей безопасности» в анализе кода из-за нашей конкатенации строк. Насколько я знаю, имена таблиц не могут быть параметризованы. Решения, которые я придумал:
1) Переключитесь на библиотеку Microsoft Excel. Но это медленнее (не так ли?).
2) Подавить предупреждение. Не хочу на самом деле.
Есть ли лучшее решение или лучшая практика для этого сценария?
sheetName
быть введено потенциально злонамеренным пользователем? Если нет, то просто отключите предупреждение. - person juharr   schedule 30.09.2014