当我创建临时表时,我收到一条错误消息,告诉我临时表已经存在。临时表对会话来说是唯一的,所以我的连接似乎没有正确关闭,我认为它可能与我在 using 语句中的 return 语句有关。
我有以下代码:
using (IDbConnection connection = dbConnectionHandler.CreateConnection())
{
connection.Open();
CreateATempTable();
PopulateTempTable();
DataSet ds = CallStoredProcThatUsesTempTable();
return ds;
}
我在几个地方使用这种代码来创建一个同名的临时表。
不幸的是,我收到以下错误:There is already an object named '#MyTempTable' in the database
.
现在,我知道临时表对于会话是唯一的,因此一旦会话关闭,它就会消失。
我认为有三件事可能会导致这种情况......
- 我需要调用 connection.Close()
- 我需要将 return 语句放在我的 using 语句之外
- 我需要在返回之前删除我创建的临时表
有谁知道它是哪一个?或者如果它是我没有想到的?