From ac6ee11449675d4e34300e6cfc00213b4adab111 Mon Sep 17 00:00:00 2001 From: Bobbie Hodgetts Date: Thu, 10 Feb 2022 08:50:32 +0000 Subject: [PATCH] Added database connection check at application startup --- .../BealeEngineering.Accounts/frmMain.cs | 9 +++++++++ .../Data/Database/Connection.cs | 16 ++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/BealeEngineering/BealeEngineering.Accounts/frmMain.cs b/BealeEngineering/BealeEngineering.Accounts/frmMain.cs index 827417f..8079fb5 100644 --- a/BealeEngineering/BealeEngineering.Accounts/frmMain.cs +++ b/BealeEngineering/BealeEngineering.Accounts/frmMain.cs @@ -26,6 +26,15 @@ namespace BealeEngineering.Accounts { InitializeComponent(); sqlConnectionString = ConfigurationManager.ConnectionStrings["BealeEngSQLDb"].ToString(); + + // test for sql connection + string dbConnMessage = new Core.Data.Database.Connection(sqlConnectionString).IsServerConnected(); + if (dbConnMessage != null) + { + MessageBox.Show(dbConnMessage, "Database connection error", MessageBoxButtons.OK); + Environment.Exit(0); + } + assignInvoice = new Core.Logic.Sale.AssignInvoice(sqlConnectionString); UpdateInvoiceImportText(); } diff --git a/BealeEngineering/BealeEngineering.Core/Data/Database/Connection.cs b/BealeEngineering/BealeEngineering.Core/Data/Database/Connection.cs index 8e6cf0a..ef12aad 100644 --- a/BealeEngineering/BealeEngineering.Core/Data/Database/Connection.cs +++ b/BealeEngineering/BealeEngineering.Core/Data/Database/Connection.cs @@ -22,5 +22,21 @@ namespace BealeEngineering.Core.Data.Database this.sqlConnectionString = sqlConnectionString; } + + public string IsServerConnected() + { + using (SqlConnection conn = new SqlConnection(sqlConnectionString)) + { + try + { + conn.Open(); + return null; + } + catch (SqlException ex) + { + return ex.InnerException; + } + } + } } }