 <p>It seems one of <code>GetSuppliers()</code> ` is not executed till the part where you set</p> <pre><code>con.Close() </code></pre> <p>You have two alternatives:</p> <p>1.Open the connection only once and use it in every method without closing it and close it on <code>Application.Exit</code>:</p> <pre><code> public Add() { InitializeComponent(); con.Open(); } ......... private void Add_Closing(object sender, EventArgs e) { con.Close(); } </code></pre> <ol start="2"> <li><p>Set this check in every attempt to open con:</p> <p>if (con.State == ConnectionState.Closed) { con.Open(); }</p></li> </ol>