Yoruma cevap gelmedi. Ben hem bir cevap hem de bir kaç öneri yazayım.
Yorumda bahsettiğim Microsoft.ApplicationBlocks.Data isim alanındaki
SqlHelper sınıfını kullanırsan bunun ExecuteDataset metodu ile helper.CommandText ifadesinde yaptığını yapabilirsin. ExecuteDataset metodunun birinci parametresi bağlantı olarak bildiriliyor ve metot DataSet döndürüyor. Bu şekilde istediğin bağlantıyı kullanarak sorgu yapabilirsin.
Kullanımı:
ExecuteDataset ( SqlConnection connection, CommandType commandType, string commandText ) : DataSet
Web sayfamıza bir kaç kişi girdiğinde bir sorun olmayacaktır ama bir kaç yüz veya bir kaç bin kişi girdiğinde şunlar sorun çıkarır, sunucuyu meşgul eder:
DataSet kullanmak yerine doğrudan ExecuteReader kullanarak verileri okuyup kullanmak daha iyidir. SqlDataRedar döndüren bu metod sadece ileri okuma imkanı verir, çok daha hızlıdır ve çok az kaynak kullanır.
C# programlama dilinin en yavaş yaptığı işlerden biriisi String'leri birbirine eklemektir. Ekleme için her eklemede yeni bir String oluşturulur. Bunun yerine metin birleştirme işlemlerinde daha hızlı olan StringBuilder kullanılmalı.
Örneğin üstteki kod için şöyle bir şey yapılabilir:
StringBuilder takvimOlay = new StringBuilder();
for (int t = 0; t < dt.Rows.Count; t++)
{
sb
.Append("<div style='text-align=left;'>")
.Append(" <b>Etkinlik</b>: ").Append(dt.Rows[t]["Etkinlik"])
.Append(" <br/><b>Tarih</b>: ").Append(dt.Rows[t]["Tarih"].ToString().Substring(0, 10))
.Append(" <br/><b>Saat</b>: ").Append(dt.Rows[t]["Saat"].ToString().Substring(0, 5))
.Append(" <hr style='color:#ED9D54;' />")
.Append("</div>");
}
e.Cell.Attributes.Add("title", takvimOlay.ToString());
Tabi aynı durum events değişkeni içinde geçerli.