How to Check SQL Server Connection in C#
By Tan Lee Published on Jul 03, 2017 13.88K
This article explains how to define, retrieve, and dynamically modify connection strings in an application using an App.config file and custom helper classes.
How to check database connection status in C#?
Open Visual Studio, then click New Project, then select Visual C# on the left, then Windows and then select Windows Forms Application. Name your project "DynamicallyConnectionString" and then click OK
Design your form as shown below.
The App.config
file is used to store configuration settings, including database connection strings.
<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="cn" connectionString="Data Source=.;Initial Catalog=Northwind;User ID=sa;Password=123@qaz?;" providerName="System.Data.SqlClient"/> </connectionStrings> </configuration>
The AppSetting
class provides methods to read and save connection strings from the App.config
file dynamically.
using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DynamicallyConnectionString { public class AppSetting { Configuration config; public AppSetting() { config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); } // Read connection string public string GetConnectionString(string key) { return config.ConnectionStrings.ConnectionStrings[key].ConnectionString; } // Save connection string public void SaveConnectionString(string key,string value) { config.ConnectionStrings.ConnectionStrings[key].ConnectionString = value; config.ConnectionStrings.ConnectionStrings[key].ProviderName = "System.Data.SqlClient"; config.Save(ConfigurationSaveMode.Modified); } } }
The SqlHelper
class is responsible for testing the database connection using the provided connection string.
using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DynamicallyConnectionString { public class SqlHelper { SqlConnection cn; public SqlHelper(string connectionString) { cn = new SqlConnection(connectionString); } public bool IsConnection { get { if (cn.State == System.Data.ConnectionState.Closed) cn.Open(); return true; } } } }
The Windows Forms application allows users to input credentials, making it easy to test connections.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace DynamicallyConnectionString { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnConnect_Click(object sender, EventArgs e) { string connectionString = string.Format("Data Source={0};Initial Catalog={1};User ID={2};Password={3};", cboServer.Text, txtDatabase.Text, txtUsername.Text, txtPassword.Text); try { SqlHelper helper = new SqlHelper(connectionString); if (helper.IsConnection) MessageBox.Show("Test connection succeeded.", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch(Exception ex) { MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void Form1_Load(object sender, EventArgs e) { //Add server name to combobox cboServer.Items.Add("."); cboServer.Items.Add("(local)"); cboServer.Items.Add(@".\SQLEXPRESS"); cboServer.Items.Add(string.Format(@"{0}\SQLEXPRESS", Environment.MachineName)); cboServer.SelectedIndex = 3; } } }
Run the application, then select a server from the combo box or type a custom one.
Next, Enter the database name, username, and password, then click the "Connect" button to test the connection.
If successful, the message "Test connection succeeded." is displayed. Otherwise, an error message shows the issue.
VIDEO TUTORIAL
- How to Open and Show a PDF file in C#
- How to Get all Forms and Open Form with Form Name in C#
- How to zoom an image in C#
- How to Print a Picture Box in C#
- How to update UI from another thread in C#
- How to Search DataGridView by using TextBox in C#
- How to read and write to text file in C#
- How to save files using SaveFileDialog in C#