【发布时间】:2021-08-27 02:09:49
【问题描述】:
所以,我有一个 datagridview (datagridview1),它连接到 SQL Server。第 3 列 (adhb) 中的 datagridview 可以通过按下按钮进行更新,只需在特定列中进行编辑。问题是当我尝试更新十进制数(例如 100.25)时,它只是更改为 10025。它如何能够更新十进制值?
数据库(tbl_tahunan),第3列(adhb)设置为十进制(18,2)
查询更新数据
query = "UPDATE tbl_tahunan SET adhb = " + datagridview1.Rows[0].Cells[2].Value + " WHERE id_coicop = 1";
cmd = new SqlCommand(query, conn);
cmd.ExecuteNonQuery();
【问题讨论】:
-
请使用参数化查询 - 通过连接等方式构建 SQL 查询是灾难的根源。它不仅是许多难以调试的语法错误的来源,而且还是 SQL Injection attacks 的大门。 (它甚至可以解决您当前的问题,而无需您做任何其他事情)
-
哪里改成10025了?在网格中还是在数据库中? (您是否在网格中看到它为 100.25,但它以 10025 保存到 db,或者当您尝试在网格中输入 100.25 时它总是闪烁到 10025?)。显示该过程的一些屏幕截图以及您如何发现它是错误的
标签: c# sql-server winforms datagridview