存储过程名称P_Test @a,@b,@c返回一个结果集合

解决方案 »

  1.   

    SqlConnection nwindConn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind");SqlCommand salesCMD = new SqlCommand("SalesByCategory", nwindConn);
    salesCMD.CommandType = CommandType.StoredProcedure;SqlParameter myParm = salesCMD.Parameters.Add("@CategoryName", SqlDbType.NVarChar, 15);
    myParm.Value = "Beverages";nwindConn.Open();SqlDataReader myReader = salesCMD.ExecuteReader();Console.WriteLine("{0}, {1}", myReader.GetName(0), myReader.GetName(1));while (myReader.Read())
    {
      Console.WriteLine("{0}, ${1}", myReader.GetString(0), myReader.GetDecimal(1));
    }myReader.Close();
    nwindConn.Close();
      

  2.   

    我的这个存储过程怎么就没有结果结合??
    执行 ret =cmd.ExecuteNonQuery();
    返回 -1
    为什么??public static int Test(DateTime StartTime,DateTime EndTime,int SMTP,string STDCD,string JL,out DataSet ds )
    {
     int ret=0;
     ds=null;
     OleDbDataAdapter ada;
              OleDbConnection Constring=new OleDbConnection(ConStr);
    OleDbCommand cmd=new OleDbCommand("XunQi",Constring);
    cmd.CommandType=CommandType.StoredProcedure;
      cmd.Parameters.Add("@StartTime", OleDbType.DBTimeStamp).Value=StartTime ; 
      cmd.Parameters.Add("@EndTime", OleDbType.DBTimeStamp).Value=EndTime ; 
      cmd.Parameters.Add("@SMTP", OleDbType.Integer).Value=SMTP ; 
      cmd.Parameters.Add("@STDCD", OleDbType.VarChar, 255).Value=STDCD ; 
      cmd.Parameters.Add("@JL", OleDbType.VarChar, 10).Value=JL ; 
      try
      {
      Constring.Open();
      ret =cmd.ExecuteNonQuery();
      if (ret>0)
      {
      ada=new OleDbDataAdapter(cmd);
      ada.Fill(ds,"t1");
      cmd.Parameters.Clear();
      }
      else
      {
      cmd.Parameters.Clear();   ret=-1000; //无数据
      }
      }
      catch(Exception e)
      {
      //数据库操作发生错误,返回错误代码
      System.Diagnostics.Debug.WriteLine(e.Message);
      return -1001;
      }
      finally
      {
      Constring.Close();
      }
    return ret; }
      

  3.   

    salesCMD.CommandType = CommandType.StoredProcedure;//就是这句关键
      

  4.   

    我的这个存储过程怎么就没有结果结合??
    执行 ret =cmd.ExecuteNonQuery();//返回受影响的条数
    返回 -1你的存储过程中同时有“Select”和“Update,Insert等其他类型”就返回-1,
    因为select不影响数据,其他那些影响。所以这个行数就出问题了。不知道是不是bug还是另有原因。反正你一个过程里有“影响”和“不影响”的2种操作的SQL块,它就喜欢返回-1