I assume that the error is raised on this line:
con.Open(); // InvalidOperationException if it's already open
since you're reusing a connection and you probably have not closed it last time.
You should always close a connection immediately as soon as you're finished with it, best by using the using-statement
:
public void run_runcommand(string query)
{
using(var con = new SqlConnection(connectionString))
using(var cmd = new SqlCommand(query, con))
{
con.Open();
// ...
} // close not needed since dispose also closes the connection
}
Note that you should not use a Catch
block just to rethrow an exception. If you don't do anything with it don't catch it at all. It would be even better to use throw;
instead of throw ex;
to keep the stack trace. https://stackoverflow.com/a/4761295/284240
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…