Forum

C# SQL Server app.c...
 
Bildirimler
Hepsini Temizle

C# SQL Server app.config veya ayrı klass altında bir stiring metod mu ?

10 Yazılar
3 Üyeler
0 Likes
796 Görüntüleme
(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

hangisi daha sağlıklı olur ?

 
Gönderildi : 19/06/2011 02:00

(@ferhatkaratas)
Gönderiler: 100
Estimable Member
 

Sorunu tam anlayamadım. Detaylandırırsan daha net bir cevap verebiliriz. Ama yazdığın kelimeleri kullanarak bir kaç şeyden bahsedeyim.

app.config üzerinde tanımlayacağın değişkenleri değiştirdiğnide projeni build edip yeni bir dll oluşturman gerekmez. Dolayısyla contact mail adresi, birim fiyat vs. gibi değişmesi muhtemel değişkenleri burada tutman mantıklı olabilir.

Static string metoda gelince, bu da neticede .cs tarafında yer aldığından derlenmesi (build) ve olası değişikliklerde yeniden build edilip yeni dll'in servera atılmasını gerektirir.  public static metodlara projenin heryerinden erişebilir, böylece kod tekrarını engelleyebilirsin.

 
Gönderildi : 20/06/2011 03:01

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

şimdi durum şöyle

 

ayrı bir class altında örnek baglantı adında bir klass oluşturup , onun altında public metodla sqlin string veri yolunu vermeyi düşünüyordum. yani bunu daha önce access ile dönem projesinde yaptım. 

 şimdi sql de hazırlıyorum. app.conf olayı var. 

 

mesela database bağlamak için 

    public class Baglanti
    {
        public static string CON
        {
            get { return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\dataDB.mdb" ; }
       }
    }

 

ama şimdi başka bir yöntemle deniyorum 

 

lakin şu 

 app.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="connectiondb"  value="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MedicalDB.mdf;Integrated Security=True;" />
  </appSettings>
</configuration>

 

ayrıca tekrardan ayrı bir class altında oluşturdum bağlantı yolunu belirliyorum ve bağlantıyı açıyorum, daha sonra lat forumlarda bu metodu çağırarak bağlantı oluşturucam 

    class DBConfigs
    {
        public static SqlConnection DataCon()
        {
            string constring = ConfigurationSettings.AppSettings["connectiondb"];
            SqlConnection con = new SqlConnection(constring);
            con.Open();
            return con;
        }

    }

 

yani bu ikinci yol iyimidir sizce ? 

 

diploma tezi için proje aldım, yani iyi iş yapmak istiyorum.

 

ayrıca her değişken kaydı için ayrı bir klass oluşturucam, örnek olarak personel kayıtları için prsnrec adında ve burada değişkenleri get set metodlarıyla bellekte tutup daha sonra txtelerden alınan bilgilerle değerlendiricem tabi aynı classta üreteceğim kayıtekleme, kayıtsilme metodlarıyla. sizce böylesi daha iyi olmazmı . yani bu ciddi anlamda ilk prof deneyimim. pek bir fikrim yok akış diagralarını hazırladım artık iş programlamaya kaldı ama iyi ve hatasız bir temelden başlamam lazım. bu açıdan fikirleriniz önemli. 

 
Gönderildi : 20/06/2011 13:33

(@OmerKARADENIZ)
Gönderiler: 1560
Noble Member
 

Merhaba,

class ayırman tabiki güzel olmuş fakat benim tavsiyem bu dilme ekleme işlemlerinide SQL prosedürleriyle yapman. Bu hem profesyonel manada iyi bir hız kazandırır hem de kolaylık sağlar.

ayrıca con.open(); ile açtığın bağlantıyıda kapatmayı unutma

 
Gönderildi : 20/06/2011 15:35

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

SQL ile pek çalışmışlığım yok , derslerden gördüğüm queryleri az çok hatırlıyorum da , prosedürsel işlemler sql server tarafından yapılan hani create prosedure gibi işlemler mi ?

 

peki ben bu işlemleri mesella buttonclick event altında yapsam  kötü mü olur ?

sqlcommad record nesnesiyle, comut satırını göndersem mesela insert into tabloadı gibi ? 

 
Gönderildi : 20/06/2011 16:16

(@OmerKARADENIZ)
Gönderiler: 1560
Noble Member
 

Merhaba,

SQL tarafında ki prosedürleri kullanmak daha hızlı ve kolay bir çözümdür. ASP.NET altından direk olarak query gönderebilirsin ama profesoneliteye baktığında bu daha iyi bir seçim olduğunu söyleyebilirim. Fakat ikisinide kullanabilirsin.

Örnek vermek gerekir ise;

SqlConnection con;

SqlCommand cmd;

con=new Sqlconnection ("Data source=localhost;Initial Catalog=dbadı;IntegratedSecurity=true);

cmd=new Sqlcommand("Prosedürismin",con);

cmd.CommandType=CommandType.StoredProcedure;

 
Gönderildi : 20/06/2011 16:51

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

yani diyelimki bir procedure oluşturuyorum

Use MedicalDB

go

create procedure sqlkayıtla

( patname varchar (20),

pacientsurname varchar (30)

)

as begin 

inser into Pacients ( Patname , Patsurname ) values (@patname , @patsurname)

end

 

şimdi bunu yazdım , sizined berlittiğniz üzre bir sql command kurucam vs2008 tabanında programlama kısmında sıra

sql bağlantımı çağırdım

SqlConnection baglan = DbConfig.DataCon();

 

ve 

SqlCommand komut;

komut = new SqlCommand("sqlkayıtla", baglan);

komut.CommandType = CommandType.StoredProcedure;

 

yani böyle yazsam çalışır mı ? 

 

 yeniyimde kafamdan anlamaya çalışıyorum

 

teşekkürler. 

 
Gönderildi : 20/06/2011 17:10

(@OmerKARADENIZ)
Gönderiler: 1560
Noble Member
 

Merhaba,

SQL bağlantın doğru ise çalışır.ve Prosüdr tanimlarindaki @ işaretlerinide ekler isen..

Örnek.

Use

car

go

create

procedure sqlkayitla


(


@MusteriAdi

nchar (10),

@MusteriSoyadi

nchar (20)

)

as

begin

insert

into musteri( MusteriAdi , MusteriSoyadi ) values (@MusteriAdi , @MusteriSoyadi)

end

 
Gönderildi : 21/06/2011 11:03

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

pekala ben bunu mesela kendi pcmdeki sqlden yaptığımda, bir başka pcden projeyi açıp build ettiğimde sql hata verir mi ?

 
Gönderildi : 21/06/2011 14:18

(@OmerKARADENIZ)
Gönderiler: 1560
Noble Member
 

Merhaba,

aynı version ise vermez tabiki . Dilersen yazdığın quesyleri SQL uzantılı olarak kaydedip aktarırsın

 
Gönderildi : 21/06/2011 14:40

Paylaş: