Chiranthaka Sampath Ответов: 1

Обновление записи таблицы Sql с помощью предложения C# & amp; SQL WHERE


Всем Привет,

Я разрабатываю приложение для Windows с использованием MS SQL Server и C#. В приложении я пытаюсь обновить существующую запись таблицы с помощью параметра, который извлекается из текстового поля.

Когда я выполняю команду SQL, я получаю сообщение об ошибке синтаксиса в значениях. Я не могу найти ошибку в синтаксисе. Я также использую предложение WHERE. Ниже приведен исходный код.

Не могли бы вы показать мне, что я сделал не так?

Спасибо,
Чирантхака

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

private void btnUpdateData_Click(object sender, EventArgs e)
       {
               try
               {
                   SqlComm = new SqlCommand("UPDATE MyDataTable ('DataDesc', 'DataDate', 'DataQty') VALUES ('@DataDesc', '@DataDate', '@DataQty') WHERE DataID ='@DataID'", SqlConn);
                   SqlComm.Parameters.AddWithValue("@DataID", txtDataID.Text);
                   SqlComm.Parameters.AddWithValue("@DataDesc", txtDataDesc.Text);
                   SqlComm.Parameters.AddWithValue("@DataQty", int.Parse(txtDataQty.Text));
                   SqlComm.Parameters.AddWithValue("@DataDate", dtpDataDate.Value);
                   SqlComm.ExecuteNonQuery();

                   MessageBox.Show("Data updated!", "DB Connection With App.Config", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

                   Clear();
                   DisableButtons();
               }
               catch (Exception ex)
               {
                   MessageBox.Show(ex.Message);
               }
           }

1 Ответов

Рейтинг:
6

Mehdi Gholam

Удалите "одинарные кавычки" вокруг ваших значений :

SqlComm = new SqlCommand("UPDATE MyDataTable ('DataDesc', 'DataDate', 'DataQty') VALUES (@DataDesc, @DataDate, @DataQty) WHERE DataID = @DataID", SqlConn);


Chiranthaka Sampath

Не решенная ошибка все еще отображается.

Mehdi Gholam

Проверьте свои типы данных и типы значений, которые вы отправляете.

Chiranthaka Sampath

Я изменил оператор INSERT INTO и использовал его для команды UPDATE. Ниже приведена команда INSERT INTO. Вставка данных выполнена очень хорошо.

пробовать
{
SqlComm = new SqlCommand ("вставить в MYDATATABLE (DataID, DataDesc, DataDate, DataQty) значения (@DataID, @DataDesc, @DataDate, @DataQty)", SqlConn);
SqlComm.Параметры.AddWithValue ("@DataID", txtDataID. Text);
SqlComm.Параметры.AddWithValue ("@DataDesc", txtDataDesc. Text);
SqlComm.Параметры.AddWithValue("@DataQty", инт.Синтаксический анализ(txtDataQty.Текст));
SqlComm.Параметры.AddWithValue ("@DataDate", dtpDataDate.Ценность);
SqlComm.Метод executenonquery();

Ящик для сообщений.Показать("сведения вставлены!", "Подключение к БД с приложением.Конфиг", MessageBoxButtons.Хорошо, MessageBoxIcon.Звездочка);
Четкий();
btnAddData.Включен = ложь;
}
поймать (исключение бывший)
{
Ящик для сообщений.Показать (например, сообщение);
}

Mehdi Gholam

О!
Инструкции Update должны быть в виде " UPDATE table SET x=y WHERE id=i"

Chiranthaka Sampath

Я исправил инструкцию UPDATE, и в ней нет ошибок.

SqlComm = новая команда sqlcommand("обновление MyDataTable набор DataDesc='@DataDesc', DataDate='@DataDate', DataQty='@DataQty где DataID='@DataID'", SqlConn);

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

частная btnUpdateData_Click недействительным(объект отправителя, EventArgs в электронной)
{
пробовать
{
SqlComm = новая команда sqlcommand("обновление MyDataTable набор DataDesc='@DataDesc', DataDate='@DataDate', DataQty='@DataQty где DataID='@DataID'", SqlConn);
SqlComm.Параметры.AddWithValue ("@DataID", txtDataID. Text);
SqlComm.Параметры.AddWithValue ("@DataDesc", txtDataDesc. Text);
SqlComm.Параметры.AddWithValue("@DataQty", инт.Синтаксический анализ(txtDataQty.Текст));
SqlComm.Параметры.AddWithValue ("@DataDate", dtpDataDate.Ценность);
SqlComm.Метод executenonquery();

//sqlComm.Свойства commandtext = @"обновление имя_таблицы набор paramColumn='@paramName', где conditionColumn='@чтобыconditionname'";

Ящик для сообщений.Показать("сведения курсе!", "Подключение к БД с приложением.Конфиг", MessageBoxButtons.Хорошо, MessageBoxIcon.Звездочка);

Четкий();
DisableButtons();
}
поймать (исключение бывший)
{
Ящик для сообщений.Показать (например, сообщение);
}
}
}

Mehdi Gholam

Удалите кавычки вокруг значений.

Chiranthaka Sampath

Проблема решена. Большое спасибо за вашу помощь!