下面是我的程序`
  private void Button2_Click(object sender, System.EventArgs e)
{

SqlConnection cnn = new SqlConnection((String) ConfigurationSettings.AppSettings["ConnectionString"]);

SqlCommand cmd = new SqlCommand("logon",cnn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parameteruserid = new SqlParameter("@userid",  SqlDbType.NVarChar, 100);
parameteruserid.Value =TextBox1.Text;
cmd.Parameters.Add(parameteruserid);
SqlParameter parameterpasswd = new SqlParameter("@passwd",  SqlDbType.NVarChar, 100);
parameterpasswd.Value =TextBox2.Text;
cmd.Parameters.Add(parameterpasswd);
SqlParameter parameterustype = new SqlParameter("@ustype",  SqlDbType.Int, 8);
parameterustype.Direction =ParameterDirection.Output;
cmd.Parameters.Add(parameterustype);
cnn.Open();
cmd.ExecuteNonQuery();
cnn.Close();
     Session["usertype"]=parameterustype.Value;
可执行后,返回值parameterustype.Value调试时总为System.DBNull,哥哥帮帮我啊

解决方案 »

  1.   

    说明 存储过程 logon 就是没有返回值呗
      

  2.   

    这是存输过程:
    ALTER PROCEDURE logon (
    @userid NvarChar(100),
    @passwd NvarChar(100),
    @ustype   Int  output
    )AS
    select ustype from uslogon
    where userid=@userid and passwd=@passwd;
    RETURN 
      

  3.   

    ALTER PROCEDURE logon (
    @userid NvarChar(100),
    @passwd NvarChar(100),
    @ustype   Int  output
    )AS
    select @ustype=ustype from uslogon     
    where userid=@userid and passwd=@passwd;
    RETURN 
      

  4.   

    ALTER PROCEDURE logon (
    @userid NvarChar(100),
    @passwd NvarChar(100),
    @ustype   Int  output
    )AS
             set @ustype = select ustype from uslogon     
    where userid=@userid and passwd=@passwd;
    RETURN
      

  5.   

    存储过程错了,没有为output型的参数设置返回值
    改为:
    select @ustype=ustype from uslogon     
    where userid=@userid and passwd=@passwd