ExecuteReader требует открытия и доступное соединение. Текущее состояние соединения — «Соединяется».
Сайт работает нормально на моем локальном сервере.
Это приблизительный вариант. код.
Моя строка подключения и соединение являются статическими.
Код: Выделить всё
public static string conString = ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString;
public static SqlConnection conn = null;
Код: Выделить всё
public Promotion retrievePromotion()
{
int promotionID = 0;
string promotionTitle = "";
string promotionUrl = "";
Promotion promotion = null;
SqlOpenConnection();
SqlCommand sql = SqlCommandConnection();
sql.CommandText = "SELECT TOP 1 PromotionID, PromotionTitle, PromotionURL FROM Promotion";
SqlDataReader dr = sql.ExecuteReader();
while (dr.Read())
{
promotionID = DB2int(dr["PromotionID"]);
promotionTitle = DB2string(dr["PromotionTitle"]);
promotionUrl = DB2string(dr["PromotionURL"]);
promotion = new Promotion(promotionID, promotionTitle, promotionUrl);
}
dr.Dispose();
sql.Dispose();
CloseConnection();
return promotion;
}
Код: Выделить всё
private void SqlOpenConnection() {
try {
conn = new SqlConnection();
conn.ConnectionString = conString;
conn.Open();
}
catch (SqlException ex) {
throw ex;
}
}
Подробнее здесь: https://stackoverflow.com/questions/970 ... ons-curren