C# Ayarlar Dosyası
-
s.a Murid(e)ler C# programlamada goruyoruz 1 yıldız okulda,
donem sonu odevı verdı hocamız ve bır cok formdan olusuyor, her formunda DB ye baglanması gereklı her forma ayrı ayrı baglantı kodunu yazıyorum,
sıze sormak ıstedıgım PHP de ayarlar dosyası olusturup include ediyoruz C# tada bunun gibi bi yonten yokmudur?
DB baglantı kodumu ve bı kac fonksıyon kodumu tanımlasam sadece bı satır kod ıle her forma butun tanımlı fonksıyonlarımı cagırsam varmıdır bole bır yontem ?
-
App.config dosyasında tanımlayabilirsin
<connectionStrings>
<add key="baglantim" connectionString="[buraya connection string gelecek]"/>
</connectionStrings>
System.Configuration.ConfigurationManager.ConnectionStrings["baglantim"]; senin connection stringini döndürecek.Edit: ben yanlıs anlamısım sanırım ama statik bir sınıf yazıp bütün veritabanı işlemlerini oradan yürütebilirsin
Fdumanli tarafından 14/May/15 21:14 tarihinde düzenlenmiştir -
Add new item den class oluştur up içinde connection lari tanimla ve istedign yerde cagir
-
Fdumanli bunu yazdı
App.config dosyasında tanımlayabilirsin
System.Configuration.ConfigurationManager.ConnectionStrings["baglantim"]; senin connection stringini döndürecek.Edit: ben yanlıs anlamısım sanırım ama statik bir sınıf yazıp bütün veritabanı işlemlerini oradan yürütebilirsin
doğru anlamışsın aslında :D
System.Configuration.ConfigurationManager.ConnectionStrings["baglantim"].ConnectionStrings; şeklinde kullanıyorum genelde...
@emnimax ın istediği .net kütüphanesinin system.data.sqlclient bölümünü tekrar yazmak gibi :D gerek yok. sadece bağlantı cümleciğini config dosyasına alarak genelleştirebilirsin.
-
@crafty - @Fdumanli
sanırım bu App.config dosyasına fonksiyon tanımlayamıyoruz degılmı ?
@coder2
class ı kullanırken nasıl kullanıyoruz peki ?
-
http://barisceviz.com/2013/05/c-sql-database-islemleri-icin-hazir-class.html Burada arkadaş güzel bir şekilde uygulamalı olarak anlatmış hocam
-
ben ana forma bir adet public static olarak bir bağlantı ekliyorum onu her yerde rahatlıkla kullanıyorum tavsiye ederim eğer fonksiyonda kullanıcaksan tabikide bir class yazman lazım bütün fonksiyonlarını clasın içine public static olarak tanımlarsan istediğin yerde kullanabilirsin.
sana bir örnekte atim
alttaki, fonksiyon text boxa yazı yazmak isteyen kişinin capslock u açık mı diye kontrol ediyor.
Kullanmak için (Tools benim class ismim) Tools.CapsLockCheck(e,txtBankaAdi)
public static void CapsLockCheck(KeyPressEventArgs e, TextEdit txtbox)
{
if (e.Handled = !Control.IsKeyLocked(Keys.CapsLock))
{
txtbox.ErrorText = "Lütfen Caps Lock'u Açın";
}
else
{
txtbox.ErrorText = null;
}
}
-
Selam,
3 Katmanlı uygulama geliştirirsen işini kolaylaştırırsın..
Projeni 3 bölüme ayır mesela
1- GUI (Presentation Layer )(burada arayüz tasarımın vs.. olacak)
2- Business Logic Layer (BLL) (burası senin iş katmanın, gui ve veri kaynağı arasında köprü görevi görecek)
3- Data Access Layer (DAL) (Burada da veri kaynağını kullanacaksın, örneğin EF (entity framework))
Bir kaç resim ekleyeyim daha somut olması adına
son resimde hepsini bir projede yaptığını gösteriyor ama benim tavsiyem tüm katmanlar için ayrı proje oluşturman, böylece projen genişletilebilir olacak. Tabi başlangıç aşamasında biri için zor olabilir bunlar ama amacın kendini geliştirmek ise bunu öğrenmeni tavsiye ederim.
unbalanced tarafından 15/May/15 13:39 tarihinde düzenlenmiştir -
Class içinde yapacaktım ama Class içinde MessageBox kullanamıyorum Class ıcıne yazmak ıstedıgım kod asagıdakı sekılde.
------------------------------------------------
public void BaglantiAc()
{
try
{
Baglanti.Open();
}
catch (Exception Hata)
{
MessageBox.Show(Hata.Message, "Bağlantı Açma Hatası");
}
}------------------------------------------------
yukarıdakı kodu yazarken MessageBox blogunda hata verıyor hatta ben sıze projemı atayım o zaman daha ıyı anlarsınız lınkı asagıda verdım.
yapmak ıstedıgım KullanicilarForm.cs dekı BaglantiAc(), KullaniciListele(), SifreGuncelle(), KullaniciEkle(), KullaniciSil() gibi fonksıyonları Class ta tanımlayıp onları sadece Classı KullanicilarForm.cs dahıl ederek kod fazlalıgından kurtulmak cunku bole yapmassam eger her forma bu kodları teker teker yazmak zorunda kalacagım buda baya bı kod fazlalıgı ve ugras olacak benım ıcın bunun ıcın kolay bı yolunu arıyorum umarım vardır.
https://www.dropbox.com/s/oy85fqtnpura68m/ULUTASHaliSahaV1.zip?dl=0
-
emnimax bunu yazdı
Class içinde yapacaktım ama Class içinde MessageBox kullanamıyorum Class ıcıne yazmak ıstedıgım kod asagıdakı sekılde.
------------------------------------------------
public void BaglantiAc()
{
try
{
Baglanti.Open();
}
catch (Exception Hata)
{
MessageBox.Show(Hata.Message, "Bağlantı Açma Hatası");
}
}------------------------------------------------
hocam burada try catch kullanmayıp metodu çağırdığın yerde try catch kullanman daha doğru olur.
Ornegin
try
{
obj.BaglantiAc();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}