我正在爲我的應用程序使用ASP.Net WebserviceApplication,它正在與我的SQL Server進行通信。應該在所有用戶的sql事務之後關閉SQLConnection還是應該每次打開?我應該關閉SQLConnection對於Webservice中的所有事務嗎?
例如;
public void Connection()
{
if (connection == null)
connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Conn"].ToString());
if (connection.State == ConnectionState.Closed)
connection.Open();
else if (connection.State == ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
}
[WebMethod]
public long GetUsersRankMonthly(string userName)
{
Connection();
SqlCommand command = new SqlCommand("Select scores.Rank From (SELECT ROW_NUMBER() OVER(ORDER BY Score DESC) AS Rank,Score,NickName,ID FROM teatalay.TopScoresGeneral) scores Where UserName = @userName", connection);
command.Parameters.Add(new SqlParameter("@userName", userName));
var result = (long?)command.ExecuteScalar();
return result.HasValue ? result.Value : -1;
}
謝謝。
請問您能給我最好的做法嗎? –
@TuğrulEmreAtalay最好的做法是根據需要打開連接,然後在'using'塊中關閉它。當您關閉連接時,它不會實際關閉,但會返回到「[連接池](http://msdn.microsoft.com/zh-cn/library/8xx3tyca%28v=vs.110%29.aspx) 「因此,如果連接重新打開,它可以重新使用。 –
謝謝@Josh –