ExecuteNonQuery()不返回C#和SQL Server数据库中受影响的行

时间:2017-05-13 16:22:40

标签: c# sql-server

我使用的是SQL Server 2008和Visual Studio 2010.使用ExecuteNonQuery()命令时会出现问题。在大多数情况下,它返回受影响的实际行数,但是当我尝试删除一组记录时,它返回0.

当我在SQL Server Management Studio中打开表时,我看到删除了33条记录。

这是我的代码:

sqlQuery = "delete from  priv_  where user_id=" + txt_id.Text;
cmd = new SqlCommand(sqlQuery, con);
MessageBox.Show("rows affected = " + cmd.ExecuteNonQuery());

消息框显示

rows affected = 0

当我在SQL Server Management Studio中使用相同的查询时,它会显示

33 rows affected

我已将ONCOUNT更改为关闭,但没有任何更改。

1 个答案:

答案 0 :(得分:0)

我几周都遇到了这个问题。我对数据库使用的登录权限有疑问。我能够运行查询,但不能从我的应用程序运行查询,它不会抛出任何错误。所以我在

下添加了SQL Server 2014中登录的“所有者”权限
  

My_server->安全 - > logins-> My_login->属性 - >用户   Mappings-> My_database->选择适当的权利