如果表中有一行,我正在尝试更新一条记录。更新记录后,我想从我的方法中返回 TRUE。我正在使用以下查询。我正在使用 SQL Server 2005。我如何知道我的 SQL 查询是否更新了表?请告诉我。
Private Boolean UpdateTable()
{
string sql = "IF EXISTS(Select A.CNum FROM TABLEA A, TABLEB B WHERE A.CID= B.CID AND A.CNum is NULL AND CID=@cID) BEGIN ..... END"
}
谢谢你..
最佳答案
每当你执行一批 SQL 时,你应该被告知有多少行被修改/插入/更新,或者作为你的返回值。 SqlCommand.ExecuteNonQuery()
调用:
Private Boolean UpdateTable()
{
int rowsUpdated = 0;
string sql = "IF EXISTS(Select A.CNum FROM TABLEA A, TABLEB B WHERE A.CID= B.CID AND A.CNum is NULL AND CID=@cID) BEGIN ..... END"
using(SqlConnection con = new SqlConnection("your-connection-string-here"))
{
using(SqlCommand cmd = new SqlCommand(sql, con))
{
con.Open();
rowsUpdated = cmd.ExecuteNonQuery();
con.Close();
}
}
return (rowsUpdated > 0);
}
或者您可以在 UPDATE
之后查询 SQL 语句中的 @@ROWCOUNT
属性:
...
BEGIN
UPDATE ........
DECLARE @Updated INT
SELECT @Updated = @@ROWCOUNT
END
您可以返回该值,或检查大于零的值或任何您想做的事情。
关于c# - 如果存在查询则更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3330982/