小不好意思,请问如何执行一个生成临时表的存储过程

anya 2004-12-21 10:29:27
我想生成一个价格行情表,存储过程如下,现在知道起始时间、结束时间分别是lda_start,lda_end,
请问在.net(c#)中如何调用执行这个存储过程.小妹很愚笨,请多指教。
CREATE PROCEDURE OPR.WEB_SP_GETPRICESINFO
(
@startTime datetime ,
@endTime datetime
)
AS
if @startTime is null
begin
raiserror('没有指定要检索的单价的起始时间。', 16, 1)
return
end

if @endTime is null
begin
raiserror('没有指定要检索的单价的终止时间。', 16, 1)
return
end

if @startTime > @endTime
begin
declare @time datetime
set @time = @endTime
set @endTime = @startTime
set @startTime = @time
end

create table #WEB_PRICESINFO
(
CODE nvarchar(64) ,
NAME nvarchar(64) ,
ENAME nvarchar(64) ,
SPECCODE nvarchar(64) ,
SPECDESCRIPTION nvarchar(256) ,
AVGPRICE money ,
MAXPRICE money ,
MINPRICE money ,
PAVGPRICE money ,
REMARKS nvarchar(256) ,
SUMMARY nvarchar(1000)
)

declare @code bigint
declare @name nvarchar(64)
declare @abstract nvarchar(1000)

declare price_cur cursor for
select CODE, NAME, ABSTRACT from OPR.GBCODES where CATEGORY = 4001000

open price_cur
fetch next from price_cur into @code, @name, @abstract
while @@FETCH_STATUS = 0
begin
insert into #WEB_PRICESINFO
select convert(nvarchar(64), @code) ,
@name ,
substring(@abstract, 0, 64) ,
convert(nvarchar(64), SPECCODE) ,
N'' ,
avg(PRICE) ,
max(PRICE) ,
min(PRICE) ,
avg(PRICE) ,
N'IC 卡交易' ,
substring(@abstract, 65, len(@abstract) - 64)
from OPR.ICTRADES
where (OPR.ICTRADES.VEGCODE = @code) and (OPR.ICTRADES.FIRSTWEIGHTIME between @startTime and @endTime)

if @@ERROR <> 0
begin
close price_cur
deallocate price_cur
return
end

if @@ROWCOUNT = 0
begin
insert into #WEB_PRICESINFO values(convert(nvarchar(64), @code), @name, substring(@abstract, 0, 64), N'', N'', 0, 0, 0, 0, N'无交易记录', substring(@abstract, 65, len(@abstract) - 64))
if @@ERROR <> 0
begin
close price_cur
deallocate price_cur
return
end
end
fetch next from price_cur into @code, @name, @abstract
end

close price_cur
deallocate price_cur

select * from #WEB_PRICESINFO
return

GO
...全文
133 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
anya 2004-12-22
  • 打赏
  • 举报
回复
谢谢brightheroes,还有楼上那位。问题在各位的提示下已解决。
brightheroes 2004-12-21
  • 打赏
  • 举报
回复
ds.Tables[0]就是你要的数据表
brightheroes 2004-12-21
  • 打赏
  • 举报
回复
string sql = "server=(local);uid = sa;pwd=sa;database=test";
SqlConnection con = new SqlConnection(sql);
SqlCommand com = new SqlCommand("OPR.WEB_SP_GETPRICESINFO
",con);
com.Parameters.Add("@startTime",你的开始时间);
com.Parameters.Add("@endTime",你的结束时间);
com.CommandType = CommandType.StoredProcedure;

SqlDataAdapter sad = new SqlDataAdapter(com);
con.Open();
DataSet ds = new DataSet();
sad.Fill(ds);
con.Close();
anya 2004-12-21
  • 打赏
  • 举报
回复
谢谢楼上

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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