How to Optimize/Speedup Code Execution C#, Windows.Net
<p>I have following Code Block Which I tried to optimize in the Optimized section</p>

<pre><code>DataSet dsLastWeighing = null;
DataSet ds = null;
DataSet dsWeight = null;
string strQuery = string.Empty;
string strWhere = string.Empty;
Database db = null;

#region Original Code Block
      try
      { 
       db = DatabaseFactory.CreateDatabase();

       strWhere = "WHERE SESSION_ID = '"+pSessionID+"'"; 
       strQuery = SQ.BusinessLogic.SQLQueryFactory.GetPatientLastWeighing("DeleteWeightRecent",db.ToString(),pFacilityID,pSessionID,strWhere,0,DateTime.Now.ToUniversalTime(),0,"");
       db.ExecuteNonQuery(System.Data.CommandType.Text, strQuery);

       strWhere = "WHERE LAB_ID = 0";
       strQuery = SQ.BusinessLogic.SQLQueryFactory.GetPatientLastWeighing("InsertWeightRecent",db.ToString(),pFacilityID,pSessionID,strWhere,0,DateTime.Now.ToUniversalTime(),0,"");
       db.ExecuteNonQuery(System.Data.CommandType.Text, strQuery);

       strWhere = strWhere = "WHERE SESSION_ID = '"+pSessionID+"'"; 
       strQuery = SQ.BusinessLogic.SQLQueryFactory.GetPatientLastWeighing("GetPatientID",db.ToString(),pFacilityID,pSessionID,strWhere,0,DateTime.Now.ToUniversalTime(),0,"");
       ds = (DataSet) db.ExecuteDataSet(System.Data.CommandType.Text, strQuery);

       foreach(DataRow dr in ds.Tables[0].Rows)
       {
        if (db.ToString() == "Microsoft.Practices.EnterpriseLibrary.Data.SqlBase.SqlBaseDatabase")
        {
         strWhere = "WHERE LAB_ID=0 AND PAT_ID ="+ int.Parse(dr["PAT_ID"].ToString())+" AND WHEN IN(SELECT MAX(WHEN) FROM PATIENT_LAB WHERE LAB_ID=0 AND PAT_ID="+ int.Parse(dr["PAT_ID"].ToString())+")"; 
        }
        else if (db.ToString() == "Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabase")
        {
         strWhere = "WHERE LAB_ID=0 AND PAT_ID ="+ int.Parse(dr["PAT_ID"].ToString())+" AND [WHEN] IN(SELECT MAX([WHEN]) FROM PATIENT_LAB WHERE LAB_ID=0 AND PAT_ID="+ int.Parse(dr["PAT_ID"].ToString())+")"; 
        }
        strQuery = SQ.BusinessLogic.SQLQueryFactory.GetPatientLastWeighing("GetWeight",db.ToString(),pFacilityID,pSessionID,strWhere,0,DateTime.Now.ToUniversalTime(),0,"");

        strMain.append(strQuery+" ");
        dsWeight = (DataSet) db.ExecuteDataSet(System.Data.CommandType.Text, strQuery);


        foreach(DataRow drWeight in dsWeight.Tables[0].Rows)
        {       
         strWhere =  "WHERE PAT_ID = "+int.Parse(dr["PAT_ID"].ToString())+" AND SESSION_ID ='"+pSessionID+"'";
         strQuery = SQ.BusinessLogic.SQLQueryFactory.GetPatientLastWeighing("UpdateWeightRecent",db.ToString(),pFacilityID,pSessionID,strWhere,decimal.Parse(drWeight["LEVEL"].ToString()),DateTime.Parse(drWeight["WHEN"].ToString()).ToUniversalTime(),int.Parse(drWeight["IS_BAD"].ToString()),drWeight["NOTE"].ToString());
         db.ExecuteNonQuery(System.Data.CommandType.Text, strQuery); 
        }

       }

       strWhere = " ORDER BY W.IS_BAD DESC, P.LASTNAME ASC, P.FIRSTNAME ASC,P.MIDDLENAME ASC";
       strQuery = SQ.BusinessLogic.SQLQueryFactory.GetPatientLastWeighing("GetPatientLastWeight",db.ToString(),pFacilityID,pSessionID,strWhere,0,DateTime.Now.ToUniversalTime(),0,"");
       dsLastWeighing = (DataSet) db.ExecuteDataSet(System.Data.CommandType.Text, strQuery);     
      }
      catch(Exception ex)
      {
       throw ex;
      }
      finally
      {
       db = null;
       ds= null;
       dsWeight= null;
      }
      return dsLastWeighing;
      #endregion




--Optimized Section--

    #region Optimized Code Block

      try
      { 
       StringBuilder strMain=new StringBuilder();
       db = DatabaseFactory.CreateDatabase();

       //StartTime=DateTime.Now.ToLongTimeString();
       strWhere = "WHERE SESSION_ID = '"+pSessionID+"'"; 
       strQuery = SQ.BusinessLogic.SQLQueryFactory.GetPatientLastWeighing("DeleteWeightRecent",db.ToString(),pFacilityID,pSessionID,strWhere,0,DateTime.Now.ToUniversalTime(),0,"");
       //EndTime=DateTime.Now.ToLongTimeString();
       //db.ExecuteNonQuery(System.Data.CommandType.Text, strQuery);
       strMain.append(strQuery+" ");

       strWhere = "WHERE LAB_ID = 0";

       //StartTime=DateTime.Now.ToLongTimeString();
         strQuery = SQ.BusinessLogic.SQLQueryFactory.GetPatientLastWeighing("InsertWeightRecent",db.ToString(),pFacilityID,pSessionID,strWhere,0,DateTime.Now.ToUniversalTime(),0,"");
       //EndTime=DateTime.Now.ToLongTimeString();

       //db.ExecuteNonQuery(System.Data.CommandType.Text, strQuery);
       strMain.append(strQuery+" ");

       strWhere = strWhere = "WHERE SESSION_ID = '"+pSessionID+"'"; 
       //StartTime=DateTime.Now.ToLongTimeString();
         strQuery = SQ.BusinessLogic.SQLQueryFactory.GetPatientLastWeighing("GetPatientID",db.ToString(),pFacilityID,pSessionID,strWhere,0,DateTime.Now.ToUniversalTime(),0,"");
       //EndTime=DateTime.Now.ToLongTimeString();
       //ds = (DataSet) db.ExecuteDataSet(System.Data.CommandType.Text, strQuery);

       strMain.append(strQuery+" ");
       //StartTime=DateTime.Now.ToLongTimeString();
        ds = (DataSet) db.ExecuteDataSet(System.Data.CommandType.Text, strMain.ToString());
       //EndTime=DateTime.Now.ToLongTimeString();

       strMain=null;


       foreach(DataRow dr in ds.Tables[0].Rows)
       {
        //StartTime=DateTime.Now.ToLongTimeString();
        if (db.ToString() == "Microsoft.Practices.EnterpriseLibrary.Data.SqlBase.SqlBaseDatabase")
        {
         strWhere = "WHERE LAB_ID=0 AND PAT_ID ="+ int.Parse(dr["PAT_ID"].ToString())+" AND WHEN IN(SELECT MAX(WHEN) FROM PATIENT_LAB WHERE LAB_ID=0 AND PAT_ID="+ int.Parse(dr["PAT_ID"].ToString())+")"; 
        }
        else if (db.ToString() == "Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabase")
        {
         strWhere = "WHERE LAB_ID=0 AND PAT_ID ="+ int.Parse(dr["PAT_ID"].ToString())+" AND [WHEN] IN(SELECT MAX([WHEN]) FROM PATIENT_LAB WHERE LAB_ID=0 AND PAT_ID="+ int.Parse(dr["PAT_ID"].ToString())+")"; 
        }
        strQuery = SQ.BusinessLogic.SQLQueryFactory.GetPatientLastWeighing("GetWeight",db.ToString(),pFacilityID,pSessionID,strWhere,0,DateTime.Now.ToUniversalTime(),0,"");

        strMain.append(strQuery+" ");
        //EndTime=DateTime.Now.ToLongTimeString();
        //dsWeight = (DataSet) db.ExecuteDataSet(System.Data.CommandType.Text, strQuery);

        /*
        foreach(DataRow drWeight in dsWeight.Tables[0].Rows)
        {       
         strWhere =  "WHERE PAT_ID = "+int.Parse(dr["PAT_ID"].ToString())+" AND SESSION_ID ='"+pSessionID+"'";
         strQuery = SQ.BusinessLogic.SQLQueryFactory.GetPatientLastWeighing("UpdateWeightRecent",db.ToString(),pFacilityID,pSessionID,strWhere,decimal.Parse(drWeight["LEVEL"].ToString()),DateTime.Parse(drWeight["WHEN"].ToString()).ToUniversalTime(),int.Parse(drWeight["IS_BAD"].ToString()),drWeight["NOTE"].ToString());
         db.ExecuteNonQuery(System.Data.CommandType.Text, strQuery); 
        }
        */
       }


       dsWeight = (DataSet) db.ExecuteDataSet(System.Data.CommandType.Text, strMain.ToString());
       strMain=null;
       //StartTime=DateTime.Now.ToLongTimeString();
       for(int i=0;i&lt;dsWeight.Tables.Count;i++)
       {
        foreach(DataRow drWeight in dsWeight.Tables[i].Rows)
        {       
         strWhere =  "WHERE PAT_ID = "+int.Parse(dr["PAT_ID"].ToString())+" AND SESSION_ID ='"+pSessionID+"'";
         strQuery = SQ.BusinessLogic.SQLQueryFactory.GetPatientLastWeighing("UpdateWeightRecent",db.ToString(),pFacilityID,pSessionID,strWhere,decimal.Parse(drWeight["LEVEL"].ToString()),DateTime.Parse(drWeight["WHEN"].ToString()).ToUniversalTime(),int.Parse(drWeight["IS_BAD"].ToString()),drWeight["NOTE"].ToString());
         strMain.append(strQuery+" ");
         //db.ExecuteNonQuery(System.Data.CommandType.Text, strQuery); 
        }
       }
       db.ExecuteNonQuery(System.Data.CommandType.Text, strMain.ToString()); 
       //EndTime=DateTime.Now.ToLongTimeString();

       //StartTime=DateTime.Now.ToLongTimeString();
       strWhere = " ORDER BY W.IS_BAD DESC, P.LASTNAME ASC, P.FIRSTNAME ASC,P.MIDDLENAME ASC";
       strQuery = SQ.BusinessLogic.SQLQueryFactory.GetPatientLastWeighing("GetPatientLastWeight",db.ToString(),pFacilityID,pSessionID,strWhere,0,DateTime.Now.ToUniversalTime(),0,"");
       dsLastWeighing = (DataSet) db.ExecuteDataSet(System.Data.CommandType.Text, strQuery); 
       //EndTime=DateTime.Now.ToLongTimeString();
      }
      catch(Exception ex)
      {
       throw ex;
      }
      finally
      {
       db = null;
       ds= null;
       dsWeight= null;
      }
      return dsLastWeighing;


      #endregion
</code></pre>

<p>Can This Further be optimized .. Just concentrate on minimizing the loops.. I am not getting any ideas further..Any Help would be appreciated</p>
