У меня есть возврат ExecuteScalar внутри, используя блоки. И когда я запускаю метод в первый раз, это занимает некоторое время (я использую localhost). Когда я запускаю тот же метод во второй раз, он очень быстрый, как будто соединение было открыто. ПОЧЕМУ так быстро во второй раз?
(...)
using (var sqlConnection = new SqlConnection(connString))
{
using (var sqlCmd = new SqlCommand(cmdText, sqlConnection))
{
sqlCmd.Parameters.Add("@database", System.Data.SqlDbType.NVarChar).Value = "dbName";
sqlConnection.Open();
return Convert.ToInt32(sqlCmd.ExecuteScalar()) == 1;
}
;
}
или здесь:
using (var sqlConnection = new SqlConnection(connString))
{
using (var sqlCmd = new SqlCommand(cmdText, sqlConnection))
{
sqlCmd.Parameters.Add("@Param1", System.Data.SqlDbType.NVarChar).Value = "ParamValue";
sqlConnection.Open();
sqlCmd.ExecuteScalar();
if ((int)sqlCmd.ExecuteScalar() != 1)
{
using (SqlCommand command = new SqlCommand("CREATE TABLE TableName (ID int IDENTITY(1,1) PRIMARY KEY, (structure code here...)", sqlConnection))
{
command.ExecuteNonQuery();
}
}
}
}
В любом случае, при втором запуске этого метода я получаю почти мгновенный ответ.