0

我是 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();
4

1 回答 1

1

using声明不需要任何时间。需要时间的是清理您的SqlCommand. 当您使用using语句时,清理会在线进行。当您不使用它时,只要垃圾收集器决定,清理就会随机发生。

这是一个“现在付钱给我,或者以后付钱给我”的情况。

问题是您的Import_EvaluationMatch存储过程花费了太长时间。

于 2013-10-01T21:41:52.477 回答