194 messaggi dal 17 aprile 2006
Salve,
sto cercando di usare SQLtransaction, su alcune Stored procedure:

ho fatto in questo modo:
SqlCommand cmd = new SqlCommand();

      cmd.Connection = cmd.Connection;
      //cmd.Connection = cn;

      

      cmd.Connection = new SqlConnection(comm.connstring);
      
      cmd.Connection.Open();

      SqlTransaction myTrans;
      // Start a local transaction
      myTrans = cmd.Connection.BeginTransaction();
      // Must assign both transaction object and connection
      // to Command object for a pending local transaction
    
      cmd.Transaction = myTrans;

      try
      {
        cmd.CommandText = "SP_T2T_1";
        cmd.CommandType = CommandType.StoredProcedure;
        //parameters
        cmd.Parameters.Add("@Employee_ID",SqlDbType.VarChar).Value =OPERATOR ;
        cmd.Parameters.Add("@Machine_Type",SqlDbType.VarChar).Value =TESTPHASE;
        cmd.Parameters.Add("@Machine_Name",SqlDbType.VarChar).Value =ATENAME;
        cmd.Parameters.Add("@Start_Date",SqlDbType.DateTime).Value = STARTDATETIME; 
        cmd.Parameters.Add("@Deliverable_ID",SqlDbType.VarChar).Value = Deliverable_ID;
        cmd.Parameters.Add("@Deliverable_Issue",SqlDbType.VarChar).Value = Deliverable_Issue;
        cmd.Parameters.Add("@Dept_ID",SqlDbType.VarChar).Value =RUNMODE;
        
        cmd.ExecuteNonQuery();
        
        
        cmd.CommandText = "SP_T2T_2";
        cmd.CommandType = CommandType.StoredProcedure;
        //parameters
        cmd.Parameters.Add("@Serial_Number",SqlDbType.VarChar).Value =SERIALNUMBER ;
        cmd.Parameters.Add("@Machine_Type",SqlDbType.VarChar).Value =TESTPHASE;
        cmd.Parameters.Add("@Machine_Name",SqlDbType.VarChar).Value =ATENAME;
        cmd.Parameters.Add("@Start_Date",SqlDbType.DateTime).Value = STARTDATETIME; 
        cmd.Parameters.Add("@Item_Start",SqlDbType.DateTime).Value = STARTDATETIME;
        cmd.Parameters.Add("@Item_End",SqlDbType.DateTime).Value = ENDDATETIME;
        cmd.Parameters.Add("@Item_Number",SqlDbType.VarChar).Value =PARTNUMBER;
        cmd.Parameters.Add("@Item_Issue",SqlDbType.VarChar).Value =VERSION;
        cmd.Parameters.Add("@Pass",SqlDbType.Bit).Value =TESTSTATUS;
        cmd.Parameters.Add("@In_Structure",SqlDbType.Bit).Value = null;
        cmd.Parameters.Add("@Slot_Number",SqlDbType.VarChar).Value = null;
        cmd.Parameters.Add("@Captive",SqlDbType.Bit).Value =null;
        cmd.Parameters.Add("@Parent_Item_Start",SqlDbType.VarChar).Value = null;
        cmd.Parameters.Add("@Parent_Serial",SqlDbType.VarChar).Value =null;
        cmd.Parameters.Add("@Purchase_Order",SqlDbType.VarChar).Value =null;

        cmd.ExecuteNonQuery();

        myTrans.Commit();
        return string.Empty;
      }
      catch(Exception e)
      {
        try
        {
          myTrans.Rollback();
        }
        catch (SqlException ex)
        {
          if (myTrans.Connection != null)
          {
            return "An exception of type " + ex.GetType() +
              " was encountered while attempting to roll back the transaction." +
              ex.Message;
          }
        }
    
        return "An exception of type " + e.GetType() +
          " was encountered while inserting the data." +
          e.ToString();
      }
      finally 
      {
        cmd.Connection.Close();
      }


ricevo pero' il seguente errore:

transaction procedure or function SP_T2T_2 has too many..


Idee??
Modificato da bluland il 19 dicembre 2008 18.21 -

Vincenzo Pesante
Software Engineer
bluland wrote:
Salve,
sto cercando di usare SQLtransaction, su alcune Stored procedure:
ho fatto in questo modo:

SqlCommand cmd = new SqlCommand();

cmd.Connection = cmd.Connection;
....
ricevo pero' il seguente errore:

transaction procedure or function SP_T2T_2 has too many..

too many Parameters?
Tra un ExecuteNonQuery e l'altro continui ad aggiungere i parametri allo stesso oggetto SqlCommand, dovresti fare un clear prima subito dopo la prima ExecuteNonQuery: cmd.Parameters.Clear();

Alessio Leoncini (SilverlightItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer @ 5DLabs.it

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.