怎样执行存储过程,返回一个记录集和一个返回值?
比如
CREATE PROCEDURE aaaa
(
@ret int OUTPUT
)
AS
select * from table1
set @ret=0
GO
怎么同时取到select的结果和@ret的返回值呢
高手支招! 问题点数:50、回复次数:10Top
1 楼sdenli(史丹力)回复于 2004-12-17 09:07:13 得分 0
Int aa=sqlcomm.excutenoquy()
aa就是你的@RET了Top
2 楼wangyingbobj2911(不帅)回复于 2004-12-17 09:19:41 得分 0
CREATE PROCEDURE aaaa
(
@ret int OUTPUT
)
AS
select *,@ret=0 from table1
GO
把表多加一列
Top
3 楼flyskywlh(~.NET 2% 一场雨~)回复于 2004-12-17 09:28:20 得分 0
declare @ret int
set @ret=0
select *,@ret as ret from t_oa_planTop
4 楼kuya(yaya工作室)回复于 2004-12-17 09:36:05 得分 10
CREATE PROCEDURE aaaa
(
@ret int OUTPUT
)
AS
select * from table1
set @ret=0
GO
declare int @yourret
exec aaaa @ret = @yourret output
参数值@yourret 就是你要的@ret值,我exec返回值就是你的select * from table1结果集Top
5 楼wangxt(海贝)回复于 2004-12-17 09:36:16 得分 0
帮你顶Top
6 楼saucer(思归)回复于 2004-12-17 09:36:36 得分 30
try something like the following, note, you have to close Reader first
cmd = new SqlCommand("aaaa",conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@ret", SqlDbType.Int);
cmd.Parameters["@ret"].Direction = ParameterDirection.Output;
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
//
}
reader.Close();
int ret = (int)cmd.Parameters["@ret"].Value;Top
7 楼Ivony()回复于 2004-12-17 09:39:53 得分 3
也可以直接用RETURN 0。但是在执行的时候要采取一些措施,声明一个变量来捕获返回值。Top
8 楼51106354(大头)回复于 2004-12-17 11:21:52 得分 5
如果你已经有了存储过程,那么将很好写代码
cmd.CommandText = "EXECUTE 存储过程名称 @EmployeeID,@ZhiWu OUTPUT";//@员工编号为要传入的参数.
cmd.Parameters.Add("@EmployeeID", SqlDbType.Int).Value = User;
cmd.Parameters["@ZhiWu"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
string ID = (string)selectCmd.Parameters["@ZhiWu"].Value;
这样就可以得到职务
如果返回的是多行数据,则
SqlDataReader reader = cmd.ExecuteReader();
ArrayList al = new ArrayList();
while (reader.Read())
{
al.Add(reader.GetValue(0).ToString());//获取第一列中的值
}
reader.Close();
Top
9 楼kong19(DayDayUp)回复于 2004-12-17 13:01:55 得分 0
markTop
10 楼iamsoloist(Soloist)回复于 2004-12-17 13:35:47 得分 2
按 saucer(思归) 的没错。
如果你是使用sqlhelper的话,你仔细看一下你使用的方法的说明。