同时具有返回值、输入参数、输出参数的存储过程,调用的解决,高手很为之感叹

sd3249698 2006-05-11 07:40:05
首先通过创建asp组件函数,调用页面的编辑框值,得到输入参数,然后,判断组件函数使用存储过程得到的返回值是1的话,就继续执行,得出输出参数,在页面表单上的表赋值或给成label值也可。

CREATE PROCEDURE dbo.getUserName
--为了加深对"顺序"的印象,将以下两参数的定义顺序颠倒一下
@UserName varchar(40) output,
@UserID int
as
set nocount on
begin
if @UserID is null return
select @UserName=username
from dbo.[userinfo]
where userid=@UserID
if @@rowcount>0
return 1
else
return 0
return
end
go

'**调用同时具有返回值、输入参数、输出参数的存储过程**
...全文
185 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sd3249698 2006-05-12
  • 打赏
  • 举报
回复
高手,能不能帮忙呀。谢谢了。
sd3249698 2006-05-12
  • 打赏
  • 举报
回复
例如这个是我做的。
//存储过程
CREATE PROCEDURE dbo.sp_chf
(@yhm char(20) )

AS
declare @gesh tinyint

select @gesh=count(yhm) from zcb where yhm=@yhm

if @gesh<>0
return 1
else
return 0
GO

//组件
imports system
imports system.data
imports system.data.sqlclient

namespace aa

public class user

public objconn as new sqlconnection("server=(local);uid=sa;pwd=;database=text" )
public objcmd as sqlcommand


public function chf(stryhm as string) as string
objcmd =new sqlcommand("sp_chf",objconn)
objcmd.commandtype=commandtype.storedprocedure

dim objreturn as new sqlparameter("@return_value",sqldbtype.int)
objreturn.direction=parameterdirection.returnvalue
objcmd.parameters.add(objreturn)

dim objparam as new sqlparameter("@yhm",sqldbtype.varchar,20)
objparam.value=stryhm
objcmd.parameters.add(objparam)
try
objcmd.connection.open()
objcmd.ExecuteNonQuery
objcmd.connection.close()
if objreturn.value=1 then
return "重复"
else
return "不重复"
end if
catch ex as sqlexception
throw ex
end try
end function

end class
end namespace

//页面
<%@ page language="vb"%>
<%@ import namespace="system.data" %>
<%@ import namespace="system.data.sqlclient" %>
<%@ import namespace="aa" %>
<script runat="server">

sub xsh(obj as object,e as eventargs)
dim objuser as new user

lblmessage.text=objuser.chf(tbyhm.text)

end sub
</script>

<html><body>
<form runat="server">
<asp:label id="lblmessage" runat="server"/>
<asp:textbox id="tbyhm" runat="server"/>

<asp:button id="btsubmit" runat="server" onclick="xsh" text="submit" />
</form>
</body></html>

现在清楚没有。这是一个取返回值的,如果向问题中的有输入参数、输出参数、返回值勤,这个组件怎么写呀。页面怎么写
HAVENT 2006-05-12
  • 打赏
  • 举报
回复
写法一样,接收的时候参数和返回值都在command的Parameters里面
sprc_lcl 2006-05-12
  • 打赏
  • 举报
回复
莫名其妙,无聊
自由人2008 2006-05-12
  • 打赏
  • 举报
回复
不知道你究竟问的什么?
存储过程写的也正确,也满足了你的所有条件,你要怎么样?
如果要在程序中获取的话command里的parameter也有output选项,return的值也可以用@RETURNVALUE直接获取.
你究竟在搞什么?
x1234521 2006-05-12
  • 打赏
  • 举报
回复
其实没有你想那么复杂,我给你变通一下,你看看是否可以:

CREATE PROCEDURE dbo.getUserName
--为了加深对"顺序"的印象,将以下两参数的定义顺序颠倒一下
--@UserName varchar(40) output,--此句删掉
@UserID int
as
set nocount on
begin
declare @username varchar(40)
set @username = ""
if @UserID is null return
select @UserName=username
from dbo.[userinfo]
where userid=@UserID
if @@rowcount>0
--return 1更改开始,此句删掉
select '1' result,@username msg
else
--return 0
select '0' result,'错误信息' msg
return
end
go


程序中用EXEC执行这个存储过程,得到返回值result,msg 同时判断,如果result = "1" 则将msg赋值给你要的,否则显示msg错误信息
-------------------------------------
看看可以不可以。
sd3249698 2006-05-12
  • 打赏
  • 举报
回复
有没有人会呀。
webwait 2006-05-11
  • 打赏
  • 举报
回复
mark
smile9961 2006-05-11
  • 打赏
  • 举报
回复
mark

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧