c# 调用存储过程 不能获取返回值,该怎么处理
c# 调用存储过程 不能获取返回值
我用程序调用这个 存储过程 不能获取到@sqlFUID 这返回值 是什么原因?? 并且 saSqlMst 这个表中的数据不能删除?
------解决思路----------------------
返回值需要通过参数返回,存储过程的返回值是影响的行数
类似函数的值和out参数的区别
------解决思路----------------------
表数据不能删除,是执行成功,但是数据还在,还是执行出错?
如果执行成功,仔细检查参数是否匹配
如果执行出错,检查下用户权限,是否登陆用户没有删除该表的权限
------解决思路----------------------
首先你得确保你的存储过程是否正确 请在SQL查询分析器里面自己调用 并print调试。
------解决思路----------------------
单独执行一下上面一句补救知道有没有值了吗
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
单独执行一下上面一句补救知道有没有值了吗