在回调的时 用 int row = Convert.ToInt32(cmd.ExecuteScalar())即可
我们来做一个分析:只有UPDATE INSERT Delete 最后一条 语句 cmd.ExeuteNoQuery()返回的是受影响的行,默认值是-1,只有语句执行成功,才会返回受影响的行,这里隐藏了一个事务提交事件。
而你写的那个所谓的插入语句,其实只是一存储过程,执行这个存储过程,在数据里有一个 @@ROWCOUNT变量,发生了变了,而你却没有返回来。用ExecuteNoQuery()这种提交数据库,只有-1的值,因为你用的不是Insert 语句。
我来打个比方,
我们写有一个有返回的值的函数 其中有很多的语句
private int GetValue()
{
int ret=-1;
---
return ret;
}
---这些语句都没有改变 ret 的值,你想想,他会返回什么值。楼猪,不知我说明白没有。。也不知你看得懂不。