When I'm creating temp tables I get an error message telling me that the temp table already exists. The temp table is unique to the session so it seems my connection isn't closing properly and I think it may have something to do with a return statement I have in my using statement.
I have the following code:
using (IDbConnection connection = dbConnectionHandler.CreateConnection())
{
connection.Open();
CreateATempTable();
PopulateTempTable();
DataSet ds = CallStoredProcThatUsesTempTable();
return ds;
}
I use this sort of code in several places to create a temp table with the same name.
Unfortunately, I'm getting the following error: There is already an object named '#MyTempTable' in the database
.
Now, I know that the temp table is unique to the session and so once the session is closed it should disappear.
There are three things that I believe might cause this...
- I need to call connection.Close()
- I need to place the return statement outside my using statement
- I need to drop the temp table I created prior to returning
Does anyone know which one it is? or if its something I haven't thought of?