存储过程代码:
CREATE PROCEDURE getYzPwd
@验证密码     [VarChar](50)
 AS
begin
  select * from 用户 where 验证密码=@验证密码
end
GO
c#注册窗体代码,我的用户表包括 用户名  密码  验证密码(可空),所以我想定义一个通过要输入一个正确的验证密码才能注册。代码:
 public bool Checkyanzheng()
        {
                bool y = true;
                Dbhelper con = new Dbhelper();
                SqlCommand com = new SqlCommand("getYzPwd", con.cn);
                com.CommandType = CommandType.StoredProcedure;
                SqlParameter prams = new SqlParameter("@验证密码", SqlDbType.VarChar, 50);
                prams.Value = txtYanZhengPwd.Text;
                com.Parameters.Add(prams);
                con.cn.Open();
                int i = (int)com.ExecuteNonQuery();
                if (i > 0)
                {
                    lblyzError.Visible = false;
                    y = true;
                    MessageBox.Show("注册成功", "提示");
                }
                else
                {
                    lblyzError.Visible = true;
                    MessageBox.Show("注册失败", "提示");
                    y = false;
                }
                con.cn.Close();
                return y;
           
        }
但缕缕失败,明明我输入的密码都是正确的,但都是弹出注册失败的信息。
求高手解答!

解决方案 »

  1.   

    你执行存储过程的返回结果不一定是大于零。
    只要不小于0就算成功了。 
     if (i >= 0) 
      { 
             lblyzError.Visible = false; 
             y = true; 
             MessageBox.Show("注册成功", "提示"); 
      }
      

  2.   

    select 不能用ExecuteNonQuery  不管怎样,返回的是-1改存储过程select count(*) from 用户 where 验证密码=@验证密码 
    用com.executescalar()
      

  3.   

    CREATE PROCEDURE getYzPwd 
    @验证密码    [VarChar](50) 
    AS 
    begin 
    select COUNT(*) from 用户 where 验证密码=@验证密码 
    end 
    GO