大家帮个忙,一个存储过程返回值的问题!

gjmltxwd 2006-03-21 12:35:37
CREATE PROCEDURE myguocheng (@id int output) AS
select @id = max(id) from baseinfo)
return @id
GO




一下是程序中的
OleDbCommand myOleDbCommand = new OleDbCommand("myguocheng",con);

myOleDbCommand.CommandType=CommandType.StoredProcedure;
myOleDbCommand.Transaction = myOleDbTransaction;


myOleDbCommand.ExecuteNonQuery();
int maxid= (int)(myOleDbCommand.Parameters["@id"].Value);
为什么myOleDbCommand.ExecuteNonQuery()这句话出错!我把@id设为了outPut了啊,它能不能做为返回值啊?
大家看我的存储过程是不是有问题!
...全文
158 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
czhenq 2006-03-21
  • 打赏
  • 举报
回复
程序中没有指定参数
zlp321002 2006-03-21
  • 打赏
  • 举报
回复
//添加输出参数
myOleDbCommand.Parameters.Add("@id",SqlDbType.Int);
myOleDbCommand.Parameters["@id"].Direction=ParameterDirection.Output;

int maxid=myOleDbCommand.Parameters["@id"].Value.ToString();
lincent 2006-03-21
  • 打赏
  • 举报
回复
你代码在哪写OUTPUT了?我怎么没看到???
wengnet 2006-03-21
  • 打赏
  • 举报
回复
对了,程序中加上:


myOleDbCommand.Parameters.Add("@id",SqlDbType.Int);
myOleDbCommand.Parameters["@id"].Direction=ParameterDirection.Output;

int maxid=myOleDbCommand.Parameters["@id"].Value.ToString();
wengnet 2006-03-21
  • 打赏
  • 举报
回复
CREATE PROCEDURE myguocheng
(
@id int output
)
AS

set nocount on
select @id = max(id) from baseinfo)

GO
把存储过程改成这样就行了~!
unused 2006-03-21
  • 打赏
  • 举报
回复
把return @id删掉就应该行了
unused 2006-03-21
  • 打赏
  • 举报
回复
对啊,既然在存储过程的参数里已经定义了output,还要用return来返回,不是画蛇添足么?
seasky2008 2006-03-21
  • 打赏
  • 举报
回复
CREATE PROCEDURE myguocheng
AS
declare @id output
set nocount on
select @id = max(id) from baseinfo)
return @id
GO
把存储过程改为这样就可以了

62,046

社区成员

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

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

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

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