2013-09-23 3 views
0
string query = "insert into TraineeDetail values('" + trainee.TyNo + "','" + 
trainee.PersonalNumber.ToString() + "','" + trainee.TraineeName.ToString() + "','" + 
trainee.Rank.ToString() + "','" + trainee.Division.ToString() + "','" + trainee.ENMATEL + "','" + 
trainee.ENMATMECH + "','" + trainee.ENMATGSC + "','" + trainee.MAXM.ToString() + "','" + 
trainee.SUBBR.ToString() + "') order by MAXM desc "; 

# доступа я получаю error- недостающую точку с запятой (;) в конце SQL заявлениеотсутствует ";" в запросе вставки гр базы данных

любое решение

+5

Я никогда не видел INSERT INTO вместе с ORDER BY – Steve

+0

'order by MAXM desc"; '=>' order by MAXM desc; "' –

+1

Пожалуйста [параметризуйте свои переменные] (http: //www.codinghorror. com/blog/2005/04/give-me-parameterized-sql-or-give-me-death.html) - У этого есть преимущества безопасности (SqlInjection) и производительности (план кеша) – StuartLC

ответ

4

INSERT заявления используются только для этого. Вставка данных.

Вы, кажется, используете его в сочетании с ORDER BY. Что вы намерены заказать?

ORDER BY обычно используется, когда вы находитесь SELECT 'данные. Как и в: «Я хочу эти данные, но заказываю так, пока вы не покажете это мне».

Удалите ORDER BY и ваш запрос будет работать.

Также изучите SQL-инъекции и SqlParameters. Как бы то ни было, ваш код очень небезопасен.

+3

Дальнейшая ссылка на SQL Injection: http://xkcd.com/327/ – BlackVegetable

+0

Я бы добавил, что если вы используете параметризованные команды, вам не понадобится никаких «;» в конце. –

+0

раньше я пробовал вот так string query = "select TOP" + TraineesPerBlock + "* from TraineeDetail, где SUBBR = '0' по MAXM desc"; здесь, в traineesPerBlock, когда значение передано 69, я получил 110 записей, я должен получить только 69. MAXM - это двойное поле, также есть записи, имеющие такое же значение MAXM. Почему я получаю 110 записей вместо 69? –

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