在.net中调用的存储过程, 
SqlCommand myCommand=new SqlCommand("validator",con);
myCommand.CommandType=CommandType.StoredProcedure;
SqlParameter LoginName=myCommand.Parameters.Add("@LoginName",SqlDbType.VarChar,50);
LoginName.Value=name;
SqlParameter PassWD=myCommand.Parameters.Add("@PassWD",SqlDbType.VarChar,32);
PassWD.Value=pwd;
--------------SQL-------------
create procedure validator
       @LoginName varchar(50),
       @PassWD    varchar(32)
asif exists(select CompanyID from S_Company_Accounts where LoginName=@LoginName and PassWD=@PassWD)
   return 1
else
   return 0
GO
----------------------------------------
怎么在.net中得到返回的1,0值。

解决方案 »

  1.   

    请加3960901群,大家一起讨论.net技术问题。高手多多支持!!!
      

  2.   

    在存储过程中再定义一个输出参数,如:@myid  char(10)  OutPut,然后在.Net中
    string connstr1=ConfigurationSettings.AppSettings["connstring"];
    SqlConnection conn1=new SqlConnection(connstr1);
    SqlCommand mySqlCom1 = new SqlCommand("GetKcid",conn1);
    mySqlCom1.CommandType = CommandType.StoredProcedure;
    mySqlCom1.Parameters.Add("@lei",SqlDbType.Char,5);
    mySqlCom1.Parameters["@lei"].Direction = ParameterDirection.Input;
    mySqlCom1.Parameters["@lei"].Value = "04002";
    mySqlCom1.Parameters.Add("@name",SqlDbType.Char,12);
    mySqlCom1.Parameters["@name"].Direction = ParameterDirection.Input;
    mySqlCom1.Parameters["@name"].Value = "打印纸";
    mySqlCom1.Parameters.Add("@xh",SqlDbType.Char,5);
    mySqlCom1.Parameters["@xh"].Direction = ParameterDirection.Input;
    mySqlCom1.Parameters["@xh"].Value = "";
    mySqlCom1.Parameters.Add("@myid",SqlDbType.Char,10);//输出参数
    mySqlCom1.Parameters["@myid"].Direction = ParameterDirection.Output;
    try
    {
    conn1.Open();
    mySqlCom1.ExecuteNonQuery();
    string mykcid=mySqlCom1.Parameters["@myid"].Value.ToString();  //得到这个输出参数的值
    conn1.Close();
    Label3.Text="成功:KCID="+mykcid;
    }
    catch
    {
    Label4.Text="发生错误:";
    }
      

  3.   

    另外,在存储过程中将
    return 1          换成:
    set @myid=1         //上面是类型char(10),你自己改一下....
      

  4.   

    SqlParameter myp=myCommand.Parameters.Add("@returnvalue",.......);
    myp.Direction=ParameterDirection.ReturnValue;
      

  5.   

    楼上的说得不错,你也可以--------------SQL-------------
    create procedure validator
           @LoginName varchar(50),
           @PassWD    varchar(32)
    asif exists(select CompanyID from S_Company_Accounts where LoginName=@LoginName and PassWD=@PassWD)
       Select 1 as ReturnValue
    else
       Select 0 as ReturnValueGO这样就会返回一个 记录集列表了
    你在外面用 DataSet DataTable 都可以接收
      

  6.   

    SqlParameter outparam=sqlcmd.Parameters["@returnvalue"];
    outparam.Direction =ParameterDirection.Output ;
    sqlcmd.ExecuteNonQuery ();
    spNm=sqlcmd.Parameters["@returnvalue"].Value .ToString ();
      

  7.   

    楼上的说得不错,你也可以--------------SQL-------------
    create procedure validator
           @LoginName varchar(50),
           @PassWD    varchar(32)
    asif exists(select CompanyID from S_Company_Accounts where LoginName=@LoginName and PassWD=@PassWD)
       Select 1 as ReturnValue
    else
       Select 0 as ReturnValueGO这样就会返回一个 记录集列表了
    你在外面用 DataSet DataTable 都可以接收-----------------------------------------
    同意 withjun(withjun) 的作法
    然后在。NET中
    将ReturnValue当一个字段值取出来就行了。在。NET要将值转成0,1。加Convert.ToInt32(XXXXX)
    转成Boolean,加Convert.ToBoolean(XXXX)
    经常这么做的
      

  8.   

    用datatable 承接,然后取出datatable里的值就行了....
      

  9.   

    DataSet 具体怎么取出来,写具体一点。