SQL更新不起作用
本文关键字:不起作用 更新 SQL | 更新日期: 2023-09-27 18:21:28
我正在尝试使用SQL命令更新数据库,但它不起作用。
id = primarykey
public void updateName(int id, string name)
{
using(var cmd = new SqlCommand("UPDATE person SET name = @name where id = @id", connect()))
{
cmd.Parameters.AddWithValue("@id", id);
cmd.Parameters.AddWithValue("@name",name);
cmd.ExecuteNonQuery();
}
}
private SqlConnection connect()
{
string conStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
var c = new SqlConnection(conStr);
c.Open();
return c;
}
我错过了什么?
您应该更改参数添加顺序-对于大多数提供者来说,这确实很重要。
所以它不应该是
cmd.Parameters.AddWithValue("@id", id);
cmd.Parameters.AddWithValue("@name",name);
而是
cmd.Parameters.AddWithValue("@name",name);
cmd.Parameters.AddWithValue("@id", id);
一般规则:调用cmd.Parameters.AddWithValue
的顺序应与查询中参数出现的顺序相同。
- 看看你连接的数据库是否是正确的数据库,而不是测试或其他什么,服务器也是如此
-
将查询重写为
UPDATE person SET name = @name where id = @id; IF @@ROWCOUNT = 0 RAISERROR('No rows updated', 16,1)
-
检查调用堆栈中是否存在一些空的
try ... catch{}
- 查看不同架构中是否存在其他
person
表 - 看看桌子上是否有触发器以及它的作用
- 查看是否有其他进程正在更改同一个表
- 查看应用程序在运行时是否命中此代码