Как использовать переменную в качестве имени таблицы в команде sql - PullRequest
0 голосов
/ 29 апреля 2020

Пожалуйста, помогите, спасибо: параметризованные запросы для Sql Сервер Скажем, у нас есть список из двух элементов, list (0) = "tablename1". list (1) = "tablename2" Как мы можем передать list (0) или list (1) в команду sql, такую ​​как "Select * from @list (0)"? ошибка связана с объявлением @Name, чего я не знаю.

Псевдокод находится ниже:

  1. strQuery = "Выбрать * из @Name"
  2. sqlSQLCon = New SqlConnection (strSQLConn)
Dim sqlSQLCommand As New SqlCommand (strQuery, sqlSQLCon) sqlSQLCommand.Parameters.AddWithValue ("Имя", список (0)) sqlSQLCon.Open () Dim sqlSQLReader As SqlDataReadersqlSQLCommand.ExecuteReader () Если sqlSQLReader.HasRows, то сделать что-нибудь Конец, если

1 Ответ

0 голосов
/ 29 апреля 2020

Нельзя использовать параметры для идентификаторов (имена таблиц, имена столбцов и т. Д. c) в коде SQL; только для ценностей. У вас нет выбора, кроме как использовать конкатенацию строк. По этой причине вы должны быть очень осторожны с тем, откуда берется имя таблицы. В идеале вы должны запросить базу данных, чтобы получить имена таблиц, а затем выбрать пользователя из этого списка. Таким образом, вы гарантируете, что никакие вредоносные SQL не могут быть внедрены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...