Merhaba gençler, C# veritabanı programcılığı ile ilgili sormak istediğim bir kaç mevzu var. Şimdi hangi kaynağa baksam sürekli baglanti. Open ; baglanti. Close ; yapıyorlar bu sağlıklı birşey mi? php gibi bir kere açmak mantıklı değil mi? yada şyle bişey yapılan her sorgu için bağlantıyı kapatıp açmak ne kadar mantıklı? Yapılan proje : Avm Ynetimi uygulaması Kullanılan dil : C# + mysql Ne zaman birşey ğrenmek istesem, Birden Vaktim Kalmıyor?

Ben using deyimini kullanmıştım. Kod bloğu sonunda otomatik olarak kapanıyordu bağlantı. Bu sayede kapattım mı açtım mı gibisinden aklımda soru işareti kalmıyordu. Access kulanıyordum açık kalınca tekrar açmaya çalışınca hata veriyordu. https://msdn.microsoft.com/en-us/library/system. data. sqlclient. sqlconnection(v=vs.110).aspx İmza...

Hocam ado. net sınıf kütürhanelerini kullanırken SqlConnection con = new SqlConnection ; falan derken her defasında bağlantıyı açıp kapat. Bu işlemin fazla bir maliyeti yok. Yani bağlantıyı 1 kere acıp sonra kapatmamak iyi bir teknik değil sanırım. Connection Pooling denen bi olay var biraz onu araştır hocam. Entity Framework gbi bir araç kullanmadıgın için bu tarz şeylere dikkat etmen gerekiyor sanırım. http://www.buraksenyurt.com/post/Connection-Pooling-in-Onemi-bsenyurt-com-dan.aspx makale eski biraz ama işime yarar bişeyler çıkabilir.

http://www.tutorialspoint.com/entity_framework/ başlangıç için brdan bakabilirsin hocam Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

Kendine zel Bir SQL class yapısı oluşturabilirsin. Herhngi bir soru gnderirken VT bağlantısını acıp kapatabilirsin. Entitiy Framework'e bakmalısın buda güzel bir yntem Aç kapa uğraşmıyorsun + PDO Gibi birşey o da açıkları bir nebze olsun kapatıyor. vs vs. Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

Hocam bence bir entity framework e de bak. Tam adı "Ado. net Entity Framework". Bir ORM aracı . Entity Framework yada başka orm araçları ile ilişkisel veritabanın ile nesne ynelimli programlama dilin arasında bağlantı kuruyorsun. Entity Framework ü 3 farklı yaklaşımla kullanabiliyoruz. 1-)Code First 2-)Database First 3-)Model First Bu 3 yaklaşımdan bi tanesini seçip ORM işlemini tamamlıyacaksın. Ardındanda sorgu sentaksı yada method sentaksı ile sorgularını atıcaksın. Tavsiyem database first yaklaşımı ile method sentaksını kullanman. ORM aracı kullandığın zaman veritabanı işlemleri için daha az zaman harcamış oluyorsun. Ve bir takım güvenlik işlemlerini senin için hallediyor. Performans olayını bılmıyorum. Denemedim hiç lçmedim. hocam daha nce veritabanı uygulamaları geliştirmedim. bu ilk olacak o yüzden çoğu kavrama uzağım. ama sağolsun arkadaşlar çok güzel kaynaklar sundular. bu verdiğin başlıklarıda kontrol edeyim. Ne zaman birşey ğrenmek istesem, Birden Vaktim Kalmıyor?

Dispose ve close her zaman sonlandırmıyor Bilgin olsun. Enstitü framework kullan hiç dert etme Hocam framework hakkında link verebilir misin? kontrol edeyim yolun başındayken sağlam bir temel atayım. Ne zaman birşey ğrenmek istesem, Birden Vaktim Kalmıyor?

Entity yerine dapper bir alternatif olabilir deneyin.

Hocam ado. net sınıf kütürhanelerini kullanırken SqlConnection con = new SqlConnection ; falan derken her defasında bağlantıyı açıp kapat. Bu işlemin fazla bir maliyeti yok. Yani bağlantıyı 1 kere acıp sonra kapatmamak iyi bir teknik değil sanırım. Connection Pooling denen bi olay var biraz onu araştır hocam. Entity Framework gbi bir araç kullanmadıgın için bu tarz şeylere dikkat etmen gerekiyor sanırım. http://www.buraksenyurt.com/post/Connection-Pooling-in-Onemi-bsenyurt-com-dan.aspx makale eski biraz ama işime yarar bişeyler çıkabilir. hocam tam istediğim şey aslında buymuş using Ne zaman birşey ğrenmek istesem, Birden Vaktim Kalmıyor?

anladım. @pskpt using bir yntem ama heryere kod yazmaktan ziyade class yapısı ile çalışıyorum. mesela db diye bir class oluşturdum. DB db = new DB ; yapınca constructor koduna veri tabanına bağlanma kodu yazdım. bir kaç zellik tanımladım. db. baglantivarmi fonksiyonu açık bağlantıyı sorguluyor veya db. TabloGoster ; geriye DataTable verisi dndürüyor gibi... ama mesela ben login ekranında bağlantı açtım giriş yaptı. ana form geldi orda bir daha DB db =new DB ; 2. bir değişken mi? açıyor var olan bağlantıdan dolayı problem olurmu... EDİT: Ufak bir kod düzenlemesi :D db. baglantiKapat ; form kapatılırken bu kodu çağırıp veritabanını komple kapatıp diğer forma geçebilirim :) Sorun Çzülmüştür. Ne zaman birşey ğrenmek istesem, Birden Vaktim Kalmıyor?

Dispose ve close her zaman sonlandırmıyor Bilgin olsun. Enstitü framework kullan hiç dert etme Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.

Hocam bence bir entity framework e de bak. Tam adı "Ado. net Entity Framework". Bir ORM aracı . Entity Framework yada başka orm araçları ile ilişkisel veritabanın ile nesne ynelimli programlama dilin arasında bağlantı kuruyorsun. Entity Framework ü 3 farklı yaklaşımla kullanabiliyoruz. 1-)Code First 2-)Database First 3-)Model First Bu 3 yaklaşımdan bi tanesini seçip ORM işlemini tamamlıyacaksın. Ardındanda sorgu sentaksı yada method sentaksı ile sorgularını atıcaksın. Tavsiyem database first yaklaşımı ile method sentaksını kullanman. ORM aracı kullandığın zaman veritabanı işlemleri için daha az zaman harcamış oluyorsun. Ve bir takım güvenlik işlemlerini senin için hallediyor. Performans olayını bılmıyorum. Denemedim hiç lçmedim.

IDisposable uyarlayan her nesneyi using ile kullanmak iyi bir alışkanlık. O sınıfın içinde ne managed ne unmanaged bilmiyoruz çünkü. Alıntı: The garbage collector automatically releases the memory allocated to a managed object when that object is no longer used. However, it is not possible to predict when garbage collection will occur. Furthermore, the garbage collector has no knowledge of unmanaged resources such as window handles, or open files and streams. Aksi halde nesneyi try/catch/finally bloğunda açıkça sonlandırmak gerekecek. Tüm sınıfı da try/catch/finally'e sokamayacağımıza gre using de geç. Olaylara karışmayın!