我想从单元格中更改一个值(网格视图)。当我更改该值时,我得到“SqlException未处理错误在'='附近的正确语法”错误。我调试了我输入50的代码到单元格,我看到了
e.value= 50 , dt.Rows[e.RowHandle]["Operator_ID"] = null
private void gridView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
DataTable dt = gridControl1.DataSource as DataTable;
SqlProcess process = new SqlProcess();
process.updateQuery(@"UPDATE IE_OPERATOR_GID_KTS_PER SET CarpanDegeri ='" + e.Value +
"' WHERE IE_OPERATOR_GTD_KTS_PER.Operator_ID= " + dt.Rows[e.RowHandle]["Operator_ID"]);
}
在表中,Operator_ID列的属性为NOT NULL。 我该如何解决这个问题?
感谢您的回答。
PS ::我是C#和SQL的新手。因此,你可以明确回答。
答案 0 :(得分:4)
这几乎可以肯定是因为您使用手动添加的值而不是使用参数来构建SQL。将SQL更改为:
UPDATE IE_OPERATOR_GID_KTS_PER SET CarpanDegeri = @CarpanDegeri
WHERE IE_OPERATOR_GTD_KTS_PER.Operator_ID = @OperatorID
...然后提供这些参数的值。我不清楚SqlProcess
是什么,但如果它不支持参数化查询,那么它从根本上被打破了:(
有关如何使用参数的示例,请参阅SqlCommand.Parameters
文档。您应该始终为值执行此操作: