比如存储过程select @result=count(*) from users where username=@username and userpass = @userpass,然后返回@result用户名和密码对的话@result>0没有的话@result=0;
然后在.cs里面
int count=cmd.ExecuteNonQuery(ConnectionString,"那个存储过程的名字",new sqlparameter[]{new sqlparameter("@username",textbox1.text),new sqlparameter("@password",textbox2.text)})
那这样的话count是=1,因为cmd.ExecuteNonQuery执行了一句存储过程.那这样存储过程返回@result这个有什么用?

解决方案 »

  1.   

    因为cmd.ExecuteNonQuery执行了一句存储过程.
    说错
    因为cmd.ExecuteNonQuery执行了一句sql语句
      

  2.   

    这个问题 我也很纳闷 在另外一个帖子说  c#可以得到存储过程return的东西  我对此表示怀疑
      

  3.   

    这个问题是搞自己了。
    你存储过程就不能返回一个BOOL值看下,这样再来试验下
      

  4.   

    select count(*) from ...
    或使用output参数select @result=count(*)... 
      

  5.   

    我是想问返回@result这个有什么用?
    执行cmd.executeNonQuery后输出的是执行几条sql语句
    那这样在存储过程里返回@result好象没什么用?
      

  6.   

    存储过程只能return整数,
    通常用来表示操作出现的各种状态,
    比如操作成功,操作失败,操作进入某个分支等等!!想返回其他结果,
    应该用output关键字指定传出参数
      

  7.   

    记得Sqlparameter有个接收输出参数的怎么写?
    可以帮忙写下不!
    谢谢了!
      

  8.   

    MSDN是这么说的RETURN [ integer_expression ] 参数
    integer_expression返回的整数值。存储过程可向执行调用的过程或应用程序返回一个整数值。如果没有指定return的int值
    所有系统存储过程均返回 0 值。此值表示成功,而非零值则表示失败
      

  9.   

    SqlParameter paramOut=cmd.Parameters.Add("@xxx"," ");