调用存储过程,返回表,求找错误!!在线等

generhappy 2012-03-07 01:24:38
我的存储过程如下,我想返回查询结果

CREATE PROCEDURE [Contrast_Capital_Ordering]
@Basic_Code_Re_Last int,
@Basic_Code_Re int
AS
BEGIN
select * into #A from Ordering_Data where Basic_Code_Re=@Basic_Code_Re_Last ------A表为上次

select * into #B from Ordering_Data where Basic_Code_Re=@Basic_Code_Re -------B表为本次

select ISNULL(#A.Price_Code,#B.Price_Code) 编码,
ISNULL(#A.Yellow_Num,0) 上次黄,
ISNULL(#B.Green_Num,0)本次绿,
ISNULL(#A.Yellow_Date,null) 上次黄日期,
ISNULL(#B.Green_Date,null) 本次绿日期
from #A full join #B on #A.Price_Code = #B.Price_Code

RETURN
END


调用存储过程的C#代码为如下

public string Contarst(int Basic_Code_Re_Last, int Basic_Code_Re, out DataSet result)//对比存储过程
{
DataSet ds = new DataSet();
a.open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "Contrast_Capital_Ordering"; //存储过程名
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = a.connstr;

SqlParameter[] parameters ={
new SqlParameter("@Basic_Code_Re_Last",SqlDbType.Int,4),
new SqlParameter("@Basic_Code_Re",SqlDbType.Int,4),
};
parameters[0].Value = Basic_Code_Re_Last;//上次订单号.
parameters[1].Value = Basic_Code_Re;//本次订单号

foreach (SqlParameter p in parameters)
{
cmd.Parameters.Add(p);
}
SqlDataAdapter rs = new SqlDataAdapter(cmd);
rs.Fill(ds);
a.close();
return ds;
}
...全文
80 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
EnForGrass 2012-03-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 generhappy 的回复:]

弄出来了 汗!!!
[/Quote]
什么玩意啊
generhappy 2012-03-07
  • 打赏
  • 举报
回复
弄出来了 汗!!!
dreamagainzwj 2012-03-07
  • 打赏
  • 举报
回复
先区分是那边出错,存储过程还是代码。
单独将存储过程在查询分析器中执行,看看是否报错

exec Contrast_Capital_Ordering 1234,3456


generhappy 2012-03-07
  • 打赏
  • 举报
回复
倒是能执行,查询出结果来,但是我把调用的改成如下,也不行啊

public DataSet Contarst(int Basic_Code_Re_Last, int Basic_Code_Re, out DataSet result)//对比存储过程
{
a.open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "Contrast_Capital_Ordering"; //存储过程名
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = a.connstr; //缺少这一句,补上即可

SqlParameter[] parameters ={
new SqlParameter("@Basic_Code_Re_Last",SqlDbType.Int,4),
new SqlParameter("@Basic_Code_Re",SqlDbType.Int,4),
};
parameters[0].Value = Basic_Code_Re_Last;//上次订单号.
parameters[1].Value = Basic_Code_Re;//本次订单号

foreach (SqlParameter p in parameters)
{
cmd.Parameters.Add(p);
}
SqlDataAdapter rs = new SqlDataAdapter(cmd);
rs.Fill(result);
a.close();
return result;
}
EnForGrass 2012-03-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 generhappy 的回复:]

引用 1 楼 chinajiyong 的回复:

public string Contarst(int Basic_Code_Re_Last, int Basic_Code_Re, out DataSet result)//对比存储过程
返回string
而你下面又返回return ds;

还有你的 a.open();什么意思

a.open()是打开数据库连接
我想返回表……
[/Quote]
对不对?
你在sql中EXEC Contrast_Capital_Ordering 1,1//执行以下不就知道了
合肥小菜 2012-03-07
  • 打赏
  • 举报
回复
public string Contarst 改成 public DataSet Contarst
generhappy 2012-03-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chinajiyong 的回复:]

public string Contarst(int Basic_Code_Re_Last, int Basic_Code_Re, out DataSet result)//对比存储过程
返回string
而你下面又返回return ds;

还有你的 a.open();什么意思
[/Quote]
a.open()是打开数据库连接
我想返回表,应该怎么修改啊?
那个存储过程也不对吧?
EnForGrass 2012-03-07
  • 打赏
  • 举报
回复
public string Contarst(int Basic_Code_Re_Last, int Basic_Code_Re, out DataSet result)//对比存储过程
返回string
而你下面又返回return ds;

还有你的 a.open();什么意思

62,074

社区成员

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

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

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

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