2012-05-17 3 views
0

Вот мой код. Я не в состоянии установить переменную TableName, он бросает исключение Необходимо объявить переменную таблицы «@TableName»Невозможно установить параметр для выбора команды с помощью dataadapter

public DataTable getAllDataFromTable(String TableName) 
     { 

      cmd.CommandText = "select * from @TableName"; 
      cmd.Parameters.AddWithValue("@TableName", TableName); 
      da.SelectCommand = cmd; 
      da.Fill(dt); 
      return dt; 

     } 

ответ

0

Вы не можете использовать параметр в этой моде. Лучший способ реализовать то, что вы ищете, - использовать метод string.Format() для создания вашего оператора select. Единственный реальный откат - это то, что вы открываете метод до SQL Injection.

общественного DataTable getAllDataFromTable (String TableName) {

 cmd.CommandText = string.Format("select * from {0}", TableName)"; 
     da.SelectCommand = cmd; 
     da.Fill(dt); 
     return dt; 

    } 

Вот аналогичная нить.

Table name and table field on SqlParameter C#?

+0

Хорошо, это значит я могу использовать параметры только для переменных, в которых положение? – Charu

+1

@Charu Да, парамеры должны передавать данные в ваш SQL-запрос и не изменяют ваш фактический sql-запрос. Теперь снова только для данных, поэтому имена столбцов, имена таблиц, имена баз данных не будут работать. Ура .. – Nico

Смежные вопросы