c# 调用存储过程 不能获取返回值,该怎么处理

c# 调用存储过程 不能获取返回值
ALTER proc [dbo].[spDelFloat_AboutTable]
(
 @FID       NVARCHAR(50), 
 @state NVARCHAR(50) OUTPUT,
  @sqlFUID uniqueidentifier  OUTPUT
)
as
begin transaction
 declare @errorSum int  
 
 select @sqlFUID=SqlFUID from saFlow  where FID=@FID
 
 delete from saFlow where FID=@FID
 set @errorSum=@errorSum+@@error    --累计是否有错误
 
 delete from saSqlMst where FUID=@sqlFUID 
 set @errorSum=@errorSum+@@error    --累计是否有错误  
  
 if @errorSum>0
    begin 
set @state=0
        rollback transaction
    end
else
    begin 
set @state=1
        commit transaction
    end


我用程序调用这个 存储过程    不能获取到@sqlFUID  这返回值    是什么原因??  并且 saSqlMst  这个表中的数据不能删除?
------解决思路----------------------
返回值需要通过参数返回,存储过程的返回值是影响的行数
类似函数的值和out参数的区别
------解决思路----------------------
表数据不能删除,是执行成功,但是数据还在,还是执行出错?
如果执行成功,仔细检查参数是否匹配
如果执行出错,检查下用户权限,是否登陆用户没有删除该表的权限
------解决思路----------------------
首先你得确保你的存储过程是否正确 请在SQL查询分析器里面自己调用 并print调试。
------解决思路----------------------
 select SqlFUID from saFlow  where FID=@FID

单独执行一下上面一句补救知道有没有值了吗