我的存储过程如下,我想返回查询结果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_CodeRETURN
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;
        }

解决方案 »

  1.   

    public string Contarst(int Basic_Code_Re_Last, int Basic_Code_Re,  out DataSet result)//对比存储过程
    返回string
    而你下面又返回return ds;还有你的 a.open();什么意思
      

  2.   

    a.open()是打开数据库连接
    我想返回表,应该怎么修改啊?
    那个存储过程也不对吧?
      

  3.   

    public string Contarst 改成 public DataSet Contarst
      

  4.   

    对不对?
    你在sql中EXEC Contrast_Capital_Ordering 1,1//执行以下不就知道了
      

  5.   

    倒是能执行,查询出结果来,但是我把调用的改成如下,也不行啊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;
            }
      

  6.   

    先区分是那边出错,存储过程还是代码。
    单独将存储过程在查询分析器中执行,看看是否报错exec Contrast_Capital_Ordering  1234,3456