Исправьте синтаксис - PullRequest
       2

Исправьте синтаксис

0 голосов
/ 03 февраля 2011

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

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 + "'";

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

Ответы [ 5 ]

4 голосов
/ 03 февраля 2011

Это открыто для Атаки SQL-инъекций - вы должны изменить на параметризованные запросы .

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

UPDATE masterusertable 
SET
 username= @username,
 password= @password,
 phoneno= @phoneno,
 adress= @address 
WHERE userid = @userid
1 голос
/ 03 февраля 2011

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

update table set col1=val1,col2=val2.... where coln=valn
0 голосов
/ 03 февраля 2011

Для удобства чтения я бы также рекомендовал использовать string.Format при конкатенации строки.

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
        );
0 голосов
/ 03 февраля 2011

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

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

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

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

0 голосов
/ 03 февраля 2011

Вам не нужны команды 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 (если это БД, которую вы используете) и ошибку, которую вы получаете.

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