Как добавить определенное значение, используя сетку данных для обновления базы данных? - PullRequest
0 голосов
/ 27 апреля 2018

У меня проблема с обновлением базы данных при удалении строки / строк из моей таблицы данных.

Я попытался использовать событие RowsRemoved , но он возвращает мне ошибку, что в строке не удалено значение.

Поэтому, когда я пытаюсь выполнить поиск, я сталкиваюсь с этой подобной проблемой , и все подобные проблемы, которые я обнаружил до сих пор, это сложение или вычитание определенного числа (например, + 1 или - 1). Поэтому я сопоставил код со своими параметрами.

private void dataGridSales_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
{
    using (SqlConnection conn = new SqlConnection(@"Server=" + ip + "," + port + "; Database=records; User ID=" + sqlid + "; Password=" + sqlpass + ""))
    {
        conn.Open();
        int addqty = Convert.ToInt32(dataGridSales.SelectedRows[0].Cells[1].Value.ToString());
        string part = dataGridSales.SelectedRows[0].Cells[5].ToString();
        using (SqlCommand cmd = new SqlCommand(@"UPDATE [dbo].[products]
                SET Quantity = [Quantity] + '" + addqty + "' WHERE [Part No.] = '" + part + "'", conn))
        {
            cmd.ExecuteNonQuery();
        }
        conn.Close();
    }
}

Проблема в том, что он не обновил мою базу данных. Я также попробовал это в моем SQL

Quantity = Quantity + '" + addqty + "'
Quantity += '" + addqty + "'

Я использую SQL Server 2014

Это значение addqty и части в точке останова enter image description here

Это мои столбцы datagridview. ColumnIndex = 5 - это то, где значение детали, а RowIndex - выбранная строка.

enter image description here

EDIT:

Я решил проблему. Это была небольшая ошибка, что я неправильно проверял синтаксис (даже если ошибки не отображаются).

string part = dataGridSales.SelectedRows[0].Cells[5].ToString();

Забыл добавить .Value

string part = dataGridSales.SelectedRows[0].Cells[5].Value.ToString();

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

попытаться заменить dataGridSales.SelectedRows [0] .Cells [1] .Value.ToString () anddataGridSales.SelectedRows [0] .Cells [5] .ToString (); от

dataGridSales.SelectedRows[e.RowIndex].Cells[1].Value.ToString();
dataGridSales.SelectedRows[e.RowIndex].Cells[5].ToString();
0 голосов
/ 27 апреля 2018
Quantity = Quantity + '" + addqty + "'

Вы определяете addqty как int, но используете его как строку в SQL. Удалите одинарные кавычки, чтобы использовать значение в качестве числа, а не текста.

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