Eğer projenizde çoklu veri tabanı işlemleri yapıyorsanız ve timeout hatası alıyorsanız. Hatadan kurtulabilmeniz için iki yol göstereceğim.
Bu yollardan bir tanesi bağlantı yolunuzda timeout süresini belirlemek. Örneğin;
[code] SqlConnection baglanti = new SqlConnection(@"Data Source=localhost;Initial Catalog=veritabani;Integrated Security=True;MultipleActiveResultSets=True;Connection Timeout=900"); [/code]
Burada Connection Timeout=900 kısmın da timeout süresi saniye cinsinden belirtilir. Yani 900/60=15 dakika timeout(zaman aşımı) belirledik. İstediğiniz süreyi saniye cinsinden yazıp istediğimiz kadar arttırabiliriz.
Bağlantı kodunda MultipleActiveResultSets=True; kısmı aynı anda birden fazla işlem yapmanıza yardımcı olur. Örneğin projenizi paralelleştirirseniz bu kod sizin hata almanızı önleyecektir. Zaten aynı anda işlem yapmaya kalkarsanız bu kod yoksa hata alırsınız.
Eğer ben süre belirlemek istemiyorum. Zaman aşımı sınırsız olsun isterseniz. Yapmanız gereken;
[code] SqlCommand komut; sorgu = "SELECT sutun FROM tablo"; komut = new SqlCommand(sorgu, baglanti); komut.CommandTimeout = 0; /*Yazdığınız sorgu ve bağlantınızı tanımladığınız komut kodunun hemen altına yazmak ve eklemek sonrasında çalıştırma işlemini yapmak*/ komut.ExecuteNonQuery(); [/code]
Bu şekilde kullanımda zaman aşımı sınırsız olmaktadır isterseniz 0 yerine yine saniye cinsinden bir süre verip o şekilde de yapabilirsiniz. Çoklu sorgulamalarda işinize yarayabilecek bir çözümdür.
Komutu çalıştırmadan önce CommandTimeout kısmını ekleyin sonrasında çalıştırın.
Bağlantı kodunda Connection Timeout=0 yazsanızda yine timeout hatası alabilirsiniz. Oraya 0 yazınca sınırsız olmuyor. Fakat komuta yazınca sınırsız oluyor. Bunu daha önce test ettim yine hata aldım ama yinede denemek isterseniz size kalmış.