internal static System.Data.SqlClient.SqlConnection getConexiuneNoua() { System.Data.SqlClient.SqlConnection conexiune = null; if (suntConectatPeAlternativ) { conexiune = new System.Data.SqlClient.SqlConnection(CInterfataSQLServer.GetConnectionStringAlternativ()); } else { conexiune = new System.Data.SqlClient.SqlConnection(CInterfataSQLServer.GetConnectionString()); } try { conexiune.Open(); } catch (System.Data.SqlClient.SqlException) { conexiune.Dispose(); conexiune = null; if (!suntConectatPeAlternativ) { conexiune = new System.Data.SqlClient.SqlConnection(CInterfataSQLServer.GetConnectionStringAlternativ()); } else { conexiune = new System.Data.SqlClient.SqlConnection(CInterfataSQLServer.GetConnectionString()); } try { conexiune.Open(); suntConectatPeAlternativ = !suntConectatPeAlternativ; } catch (System.Data.SqlClient.SqlException) { } } return(conexiune); }
//private static void startSQLService(IDbConnection pConexiune) //{ // ServiceController[] controllers = ServiceController.GetServices(); // foreach (var item in controllers) // { // if (item.ServiceName.Contains("MSSQL$") && item.Status != ServiceControllerStatus.Running) // { // var sc = new System.ServiceProcess.ServiceController(item.ServiceName, ((System.Data.SqlClient.SqlConnection)(pConexiune)).WorkstationId); // sc.Start(); // sc.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Running, TimeSpan.FromSeconds(10)); // System.Threading.Thread.Sleep(5000); // //item.Start(); // //item.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(20)); // //break; // } // } // controllers = null; //} /// <summary> /// Metoda ce permite obtinerea unei conexiuni deschise cu o transactie /// </summary> /// <param name="sConnexionString"></param> /// <returns>Conexiunea cu tranzactia in parametru</returns> public static IDbTransaction GetTransactionOnConnection(string sConnexionString) { string sqlConnect; if (!String.IsNullOrEmpty(sConnexionString)) { sqlConnect = sConnexionString; } else { if (suntConectatPeAlternativ) { sqlConnect = CInterfataSQLServer.GetConnectionStringAlternativ(); } else { sqlConnect = CInterfataSQLServer.GetConnectionString(); } } IDbConnection cn = CInterfataSQLServer.getNewDataConnection(sqlConnect); try { cn.Open(); } catch (System.Data.SqlClient.SqlException) { if (string.IsNullOrEmpty(sConnexionString)) { cn.Dispose(); cn = null; //Daca nu merge pe normal incercam pe alternativ if (suntConectatPeAlternativ) { sqlConnect = CInterfataSQLServer.GetConnectionString(); } else { sqlConnect = CInterfataSQLServer.GetConnectionStringAlternativ(); } cn = CInterfataSQLServer.getNewDataConnection(sqlConnect); try { cn.Open(); //Pentru a sti care merge suntConectatPeAlternativ = !suntConectatPeAlternativ; } catch (System.Data.SqlClient.SqlException) { if (!suntConectatPeAlternativ) { startSQLService(cn); cn.Open(); } } } else { startSQLService(cn); cn.Open(); } } try { IDbTransaction Transac; Transac = cn.BeginTransaction(); return(Transac); } catch (Exception ex) { cn.Close(); throw ex; } }