您的位置:程序门 -> .net技术 -> c#



简单问题:存储过程返回记录!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


简单问题:存储过程返回记录![已结贴,结贴人:glc20022003]
发表于:2007-01-12 16:01:16 楼主
本人初学,我要得到存储过程返回的记录,大家来帮看看!

本人存储过程如下;
create   procedure   p_returnmobliephone
@applicationid   int,
@mobilephone   nvarchar   output
as
declare   @applicationdepartment   nvarchar
declare   @departmenttable   nvarchar
declare   @functionlevel   smallint
declare   @shiptype   nvarchar


select   @applicationdepartment=(select   applicationdepartment   from   p_application   where   id=@applicationid)
select   @departmenttable=(select   departmenttable   from   department   where   departmentid=@applicationdepartment)
if   (@departmenttable= 'stationinfo ')
begin
select   @functionlevel= '6 '
end
if   (@departmenttable= 'shipinfo ')
begin
select   @shiptype=(select   shiptype   from   shipinfo   where   shipid=@applicationdepartment)
if   (@shiptype= 'shiptype001 ')
select   @functionlevel= '4 '
if   (@shiptype= 'shiptype002 ')
select   @functionlevel= '5 '
if   (@shiptype= 'shiptype003 ')
select   @functionlevel= '5 '
end
select   @mobilephone=(select   mobilephone   from   employee   where   functionlevel=@functionlevel)

go


我要获取@mobilephone参数的返回值,是这么写吗?


sqlconnection   conn=new   sqlconnection(configurationsettings.appsettings[ "my_connstr "]);
conn.open();

sqlcommand   sqlcmd=new   sqlcommand();
sqlparameter   my_parameter=new   sqlparameter( "@applicationid ",sqldbtype.int);
my_parameter.value=2;
sqlcmd.parameters.add(my_parameter);
sqlparameter   my_return=new   sqlparameter( "@mobilephone ",sqldbtype.nvarchar,20);

my_return.direction=parameterdirection.output;
my_return.value=null;
sqlcmd.parameters.add(my_return);

sqlcmd.connection=conn;
sqlcmd.commandtext= "p_returnmobliephone ";
sqlcmd.commandtype=commandtype.storedprocedure;
sqlcmd.EXECutenonquery();

conn.close();
this.response.write(sqlcmd.parameters[ "@mobilephone "].value.tostring());


为什么this.response.write(sqlcmd.parameters[ "@mobilephone "].value.tostring());取不到值,数据库里面是有值的
发表于:2007-01-12 16:04:011楼 得分:0

this.response.write(sqlcmd.parameters[ "@mobilephone "].value.tostring());

conn.close();
发表于:2007-01-12 16:07:502楼 得分:0
还是没有值哦,我的储存过程写对了吗?大虾帮看看
发表于:2007-01-12 16:10:283楼 得分:0
接分一下,呵呵
发表于:2007-01-12 16:17:094楼 得分:0
不用程序,直接在数据库中测试存储过程能够取到值吗?
发表于:2007-01-12 16:17:415楼 得分:0
谁来帮看看哦,自己顶顶.或者取个简单的返回参数的例子也行的,谢谢.
发表于:2007-01-12 16:18:226楼 得分:0
先测试存储过程是否正确:
在查询分析器里:
declare   @mobilephone_test   nvarchar
EXEC   p_returnmobliephone   2,@mobilephone_test
print   @mobilephone_test
发表于:2007-01-12 16:22:067楼 得分:0
to   mypc007()   :没有值
发表于:2007-01-12 16:22:308楼 得分:0
给你一个存储过程的例子:
假设有一存储过程
create   proc   testproc

        @test_in   varchar(20),
        @test_out   varchar(20)   output
)

sqlcommand   cmd=new   sqlcommand(proc,conn);
cmd.commandtype=commandtype.storedprocedure;//告知执行存储过程
sqlparameter   sp=new   sqlparameter( "@test_in ",sqldbtype.varchar,20);
sp.value= "输入参数 ";
cmd.parameters.add(sp);//将参数添加到命令对象
sqlparameter   out=new   sqlparameter( "@test_out ",sqldbtype.varchar,20);
out.direction=parameterdirection.output//指定该参数为输出参数
cmd.parameters.add(out);//将参数添加到命令对象
conn.open();
cmd.EXECutenonquery();
string   result=cmd.parameters[ "@test_out "].value.tostring();//此为获取返回的输出参数值
发表于:2007-01-12 16:22:569楼 得分:20
看了下你的代码感觉没什么问题..

应该是你的存储过程的问题..
发表于:2007-01-12 16:24:2210楼 得分:0
恩,谢谢,我再看看


快速检索

最新资讯
热门点击