我在删除数据网格中的行时遇到更新数据库的问题。
我尝试使用RowsRemoved事件,但它返回一个错误,表示删除的行中没有值。
因此,当我尝试搜索时,我已经来到这个similar problem,到目前为止我发现的所有类似问题都是通过添加或减去某个数字(如+ 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是部件值,RowIndex是选定的行。
修改
我已经解决了这个问题。这是一个小错误,我没有正确检查语法(即使没有显示错误)。
string part = dataGridSales.SelectedRows[0].Cells[5].ToString();
忘记添加.Value
string part = dataGridSales.SelectedRows[0].Cells[5].Value.ToString();
答案 0 :(得分:0)
Quantity = Quantity + '" + addqty + "'
您将addqty
定义为int,但在SQL中将其用作字符串。删除单引号以将值用作数字而不是文本。
Quantity = Quantity + " + addqty + "
答案 1 :(得分:0)
尝试替换dataGridSales.SelectedRows [0] .Cells [1] .Value.ToString()和dataGridSales.SelectedRows [0] .Cells [5] .ToString();由
dataGridSales.SelectedRows[e.RowIndex].Cells[1].Value.ToString();
dataGridSales.SelectedRows[e.RowIndex].Cells[5].ToString();