Fun*_*nky 11 c# executenonquery
我之前使用过这种方法来返回更改的行数.我是运行insert方法,插入在存储过程中运行正常,但ExecuteNonQuery的返回值始终返回-1.
这是我的C#代码:
int ret = 0;
using (SqlConnection conn = new SqlConnection(this.ConnectionString))
{
using (SqlCommand cmd = new SqlCommand(QueryName, conn))
{
conn.Open();
if (Params != null)
cmd.Parameters.AddRange(Params);
cmd.CommandType = CommandType.StoredProcedure;
ret = cmd.ExecuteNonQuery();
conn.Close();
}
}
return ret;
Run Code Online (Sandbox Code Playgroud)
为什么我得到-1而不是更改的实际行数?
来自微软:
对于UPDATE,INSERT和DELETE语句,返回值是受命令影响的行数.当插入或更新的表上存在触发器时,返回值包括插入或更新操作影响的行数以及受触发器或触发器影响的行数.对于所有其他类型的语句,返回值为-1.如果发生回滚,则返回值也为-1.
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.aspx
您可能获得-1,因为您使用的是存储过程而不是直接更改表
| 归档时间: |
|
| 查看次数: |
32639 次 |
| 最近记录: |