Правильно, нельзя использовать параметр запроса для имени таблицы, имени столбца, ключевого слова или выражения SQL и т. Д. Вы можете использовать параметр запроса только для одного значения.
Я согласен с тем, что выполнение какого-либо отображения от ввода до буквального имени таблицы является хорошим способом защиты от внедрения SQL.
Я не программирую на .NET, я обычно использую динамические языки, такие как PHP, Python или Perl. Поэтому я использую хэш-массив. Вы можете пропустить switch()
, если можете просто использовать переменную перечисления для индексации в хеш-массив.
$tableName = $tableNameHash[ $table ];
Поддерживает ли .NET структуру данных типа хэш-карты? Это то, что я искал.
Похоже, что в стандартной библиотеке C ++ есть класс hash_map
.