本来希望获取存储过程执行后,所返回的行数的, 结果同一个存储过程,完全相同的参数,在两个不同的页面里, @@ROWCOUNT 和 返回的结果集的条数不一致,这让我相当怀疑 @@ROWCOUNT 的准确性...!
...
sp.Command.CommandSql = string.Format(@"
EXEC dbo.CSK_Store_GetPriceDropInLastNDays2 @NDaysAgo = 7,@TopNRows = 1000000,@MiniPrice = 1, @MinDropRate = 0.65, @MaxDropRate = 1 ,@IncludeAccessories = 1 ;
SELECT @@ROWCOUNT;
");
...
IDataReader idr = sp.GetReader();
idr.Read();
int cnt = idr.GetInt32(0);
上面这段是批处理2个SQL语句.
我原以为用 idr.GetInt32(0) 能直接读取出 @@ROWCOUNT 的值,结果读取的却是 EXEC dbo.xxxx 结果的第一条数据的第一个字段的值.
查了一下,应该这样写:
...
idr.NextResult();
idr.Read();
int cnt = idr.GetInt32(0);
也就是说:上面那个 sp 执行后,返回两个结果集.
汗...
| < Prev | Next > |
|---|



