2011-02-03 4 views
0

я должен был обновить таблицу я попробовал два запроса, но он показывает ошибка синтаксиса может кто-нибудь помочь мне пожалуйста, я знаю, что это является основным, но я новичкомИсправьте синтаксис

String query = "Update masterusertable set username='" + txtName.Text + "',and set password='" + txtpassword.Text + "',and set phoneno='" + txtphoneno.Text + "',and set adress='" + rtxtAdress.Text + "' where userid ='" + txtuserid.Text + "'"; 

String query = "Update masterusertable set username='" + txtName.Text + "', password='" + txtpassword.Text + "', phoneno='" + txtphoneno.Text + "', adress='" + rtxtAdress.Text + "' where userid ='" + txtuserid.Text + "'"; 

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

+0

Что СУБД вы используете? –

+0

Можете ли вы разместить сообщение об ошибке? – Tony

+3

Сделай себе одолжение и иди и ищи «избегать инъекции SQL» –

ответ

0

Вам не нужны команды SET для каждого поля, которое вы обновляете. Вам просто нужна первая команда SET.

Попробуйте это:

String query = "Update masterusertable set username='" + txtName.Text + "',and password='" + txtpassword.Text + "',and phoneno='" + txtphoneno.Text + "',and adress='" + rtxtAdress.Text + "' where userid ='" + txtuserid.Text + "'"; 

Кроме того, это помогло бы видеть фактический запрос отправляется в SQL Server (если это DB вы используете) и ошибка, которую вы получаете.

1

Не обязательно использовать И для всех SET полей. Также не нужно использовать SET несколько раз. Вы можете просто разделить их на.

update table set col1=val1,col2=val2.... where coln=valn 
+0

iAM ИСПОЛЬЗОВАНИЕ И ИСКЛЮЧЕНИЕ OLEDB ПРОДОЛЖАЕТСЯ ОШИБКА СИНТАКСИСА В ОБНОВЛЕНИИ ЗАПРОСА – sreenath

4

Это широко открыты для SQL Injection attacks - вы должны изменить к parameterized queries.

Что касается синтаксиса UPDATE есть только один SET пункт:

UPDATE masterusertable 
SET 
username= @username, 
password= @password, 
phoneno= @phoneno, 
adress= @address 
WHERE userid = @userid 
0

Вы используете строку или номер для первичного ключа? WHERE часть оператора форматирования строки:

where userid ='" + txtuserid.Text + "'" 

Это то, что вы хотите?

Но так как вы говорите, что проблема - это синтаксическая ошибка, которая, похоже, не имеет, думаю, это не проблема.

0

Ради удобства чтения я также рекомендую вам с помощью string.Format когда concaterating строку ..

String query = string.Format(
      "Update masterusertable set username='{0}', password='{1}', phoneno='{2}', adress='{3}' where userid ='{4}'", 
      txtName.Text, 
      txtpassword.Text, 
      txtphoneno.Text, 
      rtxtAdress.Text, 
      txtuserid.Text 
     );