【发布时间】:2011-12-28 19:52:34
【问题描述】:
我之前使用过这种方法来返回更改的行数。我是运行插入方法,插入在存储过程中运行良好,但 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;
为什么我得到 -1 而不是实际更改的行数?
【问题讨论】:
-
所以表中的修改实际上发生了,但你得到-1?
-
它可能会返回你的存储过程返回的任何东西,如果没有另外指定,它可能是 -1..
-
您是否真的使用分析器捕获了 SQL 调用并手动执行以查看实际更改的行号?
-
存储过程的代码在哪里?
-
ExecuteNonQuery() 的可能重复项
标签: c# executenonquery