Динамическое получение имени таблицы в форме aspx с использованием сервера sql - PullRequest
0 голосов
/ 04 апреля 2009

Я пытаюсь динамически принять имя таблицы в зависимости от выполненных условий, также динамически выбирается имя столбца и значение сравнения, но я получаю сообщение об ошибке при его запуске. Я пишу этот код на C #, а моим бэкендом является SQL Server 2005. Пожалуйста, помогите мне.

Вот код:


   if( table=="studenttab")

                   table = "personal_detail";

               thisconnection1.Open();

               string p = field[0].ToString().ToLower();

               string q = code[0].ToString();

           SqlCommand thiscommand3 = thisconnection1.CreateCommand();

           thiscommand3.CommandText = " Select * from '" + table + "' where '" + p + "' = '" + q + "' ";

           // here it gives error "Incorrect syntax near 'personal_detail'." Dont understand!

           SqlDataReader thisreader3 = thiscommand3.ExecuteReader();

Ответы [ 2 ]

2 голосов
/ 04 апреля 2009

Чтобы ответить на ваш конкретный вопрос, я предполагаю, что ошибка связана с тем, что вы окружаете имя таблицы и имена столбцов одинарными кавычками. имена ваших объектов не должны быть заключены в кавычки.

В качестве примечания обратите внимание на проблемы, связанные с атаками с использованием SQL-инъекций. Тип конкатенации SQL, который вы здесь делаете, широко считается огромной угрозой безопасности.

0 голосов
/ 04 апреля 2009

В вашем коде отсутствуют несколько закрывающих скобок, закрывающая кавычка, и, похоже, вводит в заблуждение отступ.

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