当我在我的数据网格中删除一行时,我在更新我的数据库时遇到了问题。
我尝试使用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
这是我的 datagridview 列。ColumnIndex = 5 是part 值所在的位置,RowIndex 是选中的行。
编辑:
我已经解决了这个问题。这是一个小错误,我没有正确检查语法(即使没有显示错误)。
string part = dataGridSales.SelectedRows[0].Cells[5].ToString();
忘记添加.Value
string part = dataGridSales.SelectedRows[0].Cells[5].Value.ToString();

