Есть ли в ADO.NET ограничения на использование параметров SQL в запросе SQL?

Этот вопрос только для образовательных целей, как яВ настоящее время я не создаю приложение, которое создает запросы SQL с пользовательским вводом.

Тем не менее, я знаю, что в ADO.NET вы можете предотвратить SQL-инъекцию, выполнив что-то вроде этого:

OleDbCommand command = new OleDbCommand("SELECT * FROM Table WHERE Account = @2", connection);
command.Parameters.AddWithValue("@2", "ABC");

Но если предположить, что ваше приложение разработано таким образом, что пользователь действительно может ввести имя таблицы, можете ли вы сделать следующее? (Я нене волнует, если этоПлохая идея разрешить пользователям указывать имя таблицы, я просто хочу знать, возможно ли следующее ...)

OleDbCommand command = new OleDbCommand("SELECT * FROM @1 WHERE Account = @2", connection);
command.Parameters.AddWithValue("@1", "Table");
command.Parameters.AddWithValue("@2", "ABC");

Я продолжаю получать исключение, когда запускаю второй код, говоря, что SQL-запрос неполон, и мне было интересно, если проблема в том, что то, что я пытаюсь сделать, просто не может быть выполнено или я что-то пропускаю.

Ответы на вопрос(1)

Ваш ответ на вопрос