我想为这些事件中的任何一个创建一个临时表,这取决于在实际应用程序中哪个是最谨慎的:页面加载事件,或第二次单击按钮。我有一个简单的存储过程
create proc spMakeTempTable
create table #tempTable (columnName varchar(50))
和 C#
protected void Page_Load(object sender, EventArgs e)
{
txtDrugList.Focus();
string cs = ConfigurationManager.ConnectionStrings["dbcs"].ConnectionString;
using (var con = new SqlConnection(cs))
{
using (var cmd = new SqlCommand("spMakeTempTable", con))
{
con.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
}
}
}
我需要特定于特定会话的临时表,以便如果不同的人访问该站点,将为他们创建不同的临时表。但是,当我运行应用程序并加载页面时,不会创建临时表。如果我更改存储过程以创建一个全局临时表,它就可以工作。不过,我认为这不是我想要的,因为我希望每个临时表都是特定于访问者的。如果访问者刷新页面,那么临时表将被销毁并重新创建。
其次,在页面加载事件上执行 proc 是否明智,或者我应该将此逻辑放入按钮单击事件中?