应当是没有问题你的存储过程拷贝的对吗
select @count = count(*) from MailRecycle where empid = @EmpID 
and mailboxid = @MailboxID and messageid = @messageid
???

解决方案 »

  1.   

    你的存储过程有问题,你是想存储过程返回值,你得声明 @count int output
      

  2.   

    create procedure CheckDeLMail 
    @EmpID int,
    @MailboxID int,
    @messageid int,
    @count int out
    as
    select @count = count(*) from MailRecycle where empid = @EmpID 
    and mailboxid = @MailboxID and messageid = @messageid
    goSqlCommand cmdCheck = new SqlCommand("CheckDeLMail",mycon);
    cmdCheck.Connection.Open();
    cmdCheck.CommandType = CommandType.StoredProcedure;
    cmdCheck.Parameters.Add("@EmpID",SqlDbType.Int);
    cmdCheck.Parameters["@EmpID"].Value = PublicVar.Gempid;
    cmdCheck.Parameters.Add("@MailboxID",SqlDbType.Int);
    cmdCheck.Parameters["@MailboxID"].Value = mailboxid;
    cmdCheck.Parameters.Add("@messageid",SqlDbType.Int);
    cmdCheck.Parameters["@messageid"].Value = messageid;    
    cmdCheck.Parameters.Add("@count",SqlDbType.Int);
    cmdCheck.Parameters["@count"].Direction =ParameterDirection.Output;
    cmdCheck.ExecuteNonQuery();
    cmdCheck.Connection.Close();
    int count=(int)cmdCheck.Parameters["@count"].Value;
      

  3.   

    同意 Marguess(留侯) 
    修改存储过程cmdCheck.Parameters.Add("@messageid",SqlDbType.Int);
    cmdCheck.Parameters["@messageid"].Value = messageid;    //增加参数Count,同时设置Direction=Out
    int count = (int)cmdCheck.ExecuteScalar();
      

  4.   

    sorry!不需要 增加Count参数! :P
      

  5.   

    这样,你把return @count
    改为select @count
      

  6.   

    lylytop(哈哈) 方法最简便有效了
      

  7.   

    aierong(皑婀瑢-AiEong联盟会厅长) 说得对