我是ASP.NET新手。我想我不知道何时使用USING语句。当我在我的代码中尝试它时,下面的示例。它需要永远和有时超时。当我不使用时运行,它工作正常。
有人可以澄清USING声明吗?什么时候应该使用它,什么时候不应该使用它。
此代码将永远耗尽,并且超时。 ......有些代码在这里。打开数据库连接执行....
cmdinsert.CommandText = insertcommand;
cmdinsert.ExecuteNonQuery();
Using (SqlCommand command = new SqlCommand("Import_EvaluationMatch", connSQL, trans))
{
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@RefNum", SqlDbType.Int).Value = RefNum;
command.ExecuteNonQuery();
}
trans.Commit();
connSQL.Close();
Response.Write("Import Successfully");
Response.Redirect("Default.aspx");
Response.End();
删除了USING语句,它运行正常。
... Some codes up here. Open DB Connection Execute....
cmdinsert.CommandText = insertcommand;
cmdinsert.ExecuteNonQuery();
// --- Now calling the stored procedure to process all this imported items.
SqlCommand command = new SqlCommand("Import_EvaluationMatch", connSQL, trans);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@RefNum", SqlDbType.Int).Value = RefNum;
command.ExecuteNonQuery();
trans.Commit();
connSQL.Close();
答案 0 :(得分:1)
using
声明不会花费任何时间。花费时间的是清理SqlCommand
。使用using
语句时,清理会在线进行。当你不使用它时,每当垃圾收集器决定时,清理就会随机进行。
这是“现在付钱给我,或者以后付钱给我”的案例。
您的Import_EvaluationMatch
存储过程耗时太长,这有什么问题。