AttaUrRahman Ответов: 4

Запрос на обновление не работает


A first chance exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll

Additional information: Incorrect syntax near '='.


private void buttonupdate_Click(object sender, EventArgs e)
        {
            connection.Open();
            //SqlCommand command = new SqlCommand();
            //command.Connection = connection;
            SqlCommand command = new SqlCommand("UPDATES entry SET  Name = @name, Father Name = @fathername, Gender = @gender, CNIC = @cnic, Mobile = @mobile, Date of Birth = @birthdate, Address = @address,Village Council =  @vc, Tehsil = @tehsil, District = @district, occupation = @occupation where Serial No = @serialno", connection);
            command.Parameters.Add(new SqlParameter("@serialno", textBoxserialno.Text));
            command.Parameters.Add(new SqlParameter("@name", textBoxname.Text));
            command.Parameters.Add(new SqlParameter("@fathername", textBoxfathername.Text));
            command.Parameters.Add(new SqlParameter("@gender", comboBoxgender.GetItemText(comboBoxgender.SelectedItem)));
            command.Parameters.Add(new SqlParameter("@cnic", textBoxcnic.Text));
            command.Parameters.Add(new SqlParameter("@mobile", textBoxmobile.Text));
            command.Parameters.Add(new SqlParameter("@birthdate", dateTimePickerdob.Value.ToString()));
            command.Parameters.Add(new SqlParameter("@address", textBoxvillage.Text));
            command.Parameters.Add(new SqlParameter("@vc", textBoxvc.Text));
            command.Parameters.Add(new SqlParameter("@tehsil", textBoxtehsil.Text));
            command.Parameters.Add(new SqlParameter("@district", textBoxdistrict.Text));
            command.Parameters.Add(new SqlParameter("@occupation", textBoxoccupation.Text));
            command.ExecuteNonQuery();
            connection.Close();
            MessageBox.Show(textBoxname.Text, "Update", MessageBoxButtons.OK, MessageBoxIcon.Information);
           

        }


Что я уже пробовал:

Я пытался, но безуспешно.

Maciej Los

UPDATES??- Так и должно быть UPDATE!!!

AttaUrRahman

Спасибо.

4 Ответов

Рейтинг:
33

Maciej Los

Попробовать это:

SqlCommand command = new SqlCommand("UPDATE entry SET  Name = @name, [Father Name] = @fathername, Gender = @gender, CNIC = @cnic, Mobile = @mobile, [Date of Birth] = @birthdate, Address = @address, [Village Council] =  @vc, Tehsil = @tehsil, District = @district, occupation = @occupation
where [Serial No] = @serialno", connection);


Изменения:
1. UPDATES заменены UPDATE
2. каждое имя столбца с пробелом между словами было обведено []


AttaUrRahman

- Спасибо, Сэр.

Maciej Los

Всегда пожалуйста.

MadMyche

+5

Maciej Los

Спасибо.

Рейтинг:
20

MadMyche

Если у вас есть доступ к программе разработки SQL (например, Sql Server Management Studio), вы должны создать там свою команду SQL и попробовать ее. И обратите внимание на intellisense и подчеркивание того, что он применяется.

UPDATES @Entry                      -- UPDATES is NOT highlighted

SET Name            = @names        -- Name is highlighted
,   Father Name     = @fathername   -- Name is highlighted
,   Gender          = @gender
,   CNIC            = @cnic
,   Mobile          = @mobile
,   Date of Birth   = @birthdate    -- Date is highlighted
,   Address         = @address      -- Address is highlighted
,   Village Council =  @vc
,   Tehsil          = @tehsil
,   District        = @district
,   occupation      = @occupation

where (Serial No = @serialno)      -- Both Serial and No are highlighted

1. Следует обновить, как уже отмечалось
2. имя-это "особое" слово
3. пробел в имени столбца должен быть завернут [имя Отца]
4. Дата-это тип данных, пробел в имени столбца
5. Адреса "специальное" слово
6. Как последовательный, так и не специальные слова

Мои правила развития...
1. Если имя столбца или переменной меняет цвет при вводе текста, я изменяю имя этого элемента
2. Пробелы в имена столбцов (или переменные)
3. Используйте SQL IDE при разработке запроса для написания и тестирования


Maciej Los

5ed!

MadMyche

Спасибо

Рейтинг:
2

Tony Hill

Есть ли в поле "Имя Отца" пробел, если вам нужно поместить имя поля в квадратные скобки?


Рейтинг:
12

Tony Hill

SqlCommand command = new SqlCommand("UPDATES entry SET Name = @name, Father Name = @fathername, Gender = @gender ...<br />
                            Try removing the space between 'Father' and 'Name'


AttaUrRahman

Спасибо.