Is it OK to pass SQLCommand as a parameter?
Posted
by TooFat
on Stack Overflow
See other posts from Stack Overflow
or by TooFat
Published on 2010-04-23T13:49:38Z
Indexed on
2010/04/23
13:53 UTC
Read the original article
Hit count: 278
I have a Business Layer that passes a Conn string and a SQLCommand to a Data Layer like so
public void PopulateLocalData()
{
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "usp_PopulateServiceSurveyLocal";
DataLayer.DataProvider.ExecSQL(ConnString, cmd);
}
The DataLayer then just executes the sql like so
public static int ExecSQL(string sqlConnString, System.Data.SqlClient.SqlCommand cmd)
{
int rowsAffected;
using (SqlConnection conn = new SqlConnection(sqlConnString))
{
conn.Open();
cmd.Connection = conn;
rowsAffected = cmd.ExecuteNonQuery();
cmd.Dispose();
}
return rowsAffected;
}
Is it OK for me to pass the SQLCommand as a parameter like this or is there a better more accepted way of doing it. One of my concerns is if an error occurs when executing the query the cmd.dispose line will never execute. Does that mean it will continue to use up memory that will never be released?
© Stack Overflow or respective owner