Etiket Arşivi [ MySQL ] - Sayfa2 / 2

  1. Merhaba arkadaşlar

    Bildiğiniz gibi mysql web uygulamlarında en çok kullanılan veritabanınlarından bir olmaktadır.bu yazımda ise sizlere mysql 5.0 ile birlikte gelen yeniliklerden olan Stored Procedure kullanımından bahsetmek istiyorum.

    Şimdi sizler ile birlikte basit bir procedure yazalım .(genel taslak)

    CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_KayitEkle`()

    BEGIN

    --sql sorgularını yaza biliriz.

    END

    Şimdi ise parametre alan bir Procedure yazalım.

    CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_KayitEkle`(

    IN _Id int ,

    IN _Ad varchar(50), -- veri türlerini yazmamız gerek

    IN _Soyad varchar(50))

    BEGIN

    insert into ilktablom(id,ad,soyad)

    values(_Id,_Ad,_Soyad);

    END

    Yazmış olduğumuz Stored Procedure ‘leri inceleyelim; dikkat ederseniz tanımlama yaparken IN diye bir terim kullandım, bu ve diğer terimleri aşağıda belirtilmektedir.

    IN : Veri girmek için

    OUT : Sadece veri çıkışı

    İNOUT : Hem veri girmeyi hemde veri çıkışı için kullanır.

    Mysql de Stored Procedure kullanımları bu şekilde yapılmaktadır. Gördüğünüz üzeri MSSQL veritabanındanda fazla bir fark görünmemektedir. Bu sebetten dolayı mysql ile çaıştığımız uygulamlarda performans kazanmak için kullanmamız gereke bir çözümde üretmiş olduk. Çalışmanın yararlı olması dileği ile herkese kolay gelsin.

  2. .Net ile MySQL kullanımı makalelerimizin ile projelerin de MySQL veritabanı kullanan birçok arkadaşımıza yardımcı olmayı amaçladık. Bu makalemiz de ise C# 3.0 ile birlikte gelen ve bence göz ardı edilemeyecek kadar önemli olan linq alt yapısını kullanarak MySQL veritabanı üzerinde nasıl işlem yapacağımızı inceleyeceğiz.

    Bb386977.DPUEADONETandLINQtoDSenusVS[1]

    LinqToDataSet; ADO. Net 2,0 alt yapısını temel alarak çalışan bir yapıdır; bu yapı kullanarak veritabanı da yapacağımız select sorguları linq ile yapmamızı sağlamaktadır. Şimdi bir Windows Application projesi açalım ve aşağıdaki form tasarımını yapalım.

    mysqllinq1_thumb4

    (Tasarım da üç tane buton bir dataGridView nesnelinde oluşmaktadır.)

    Şimdi veritabanında verileri çekmek için bir get() metodu oluşturalım ve form ‘un Load olayın da bu metodu çağralım.(verileri DataTable ‘a çekmek ve mysql veritabanına bağlanmak için MySql. Data dll projenize referans almanız gerekmektedir.)

      private const string constr = "server=localhost;database=fabrika;user Id=root;pwd=123";//Baglanti    adresi tanimladik

      DataTable dtl = new DataTable();//bir cok yerde kullanacigimiz icin global de DataTable tanimladik

    void GetData(){

       using (MySqlConnection con = new MySqlConnection(constr))//baglati olusturduk

        {

           MySqlDataAdapter adapter = new MySqlDataAdapter("select*from personel", con);//DataAdapter ile   sorguyu gonderdik

        adapter.Fill(dtl);// Fill metodu ile verileri DataTable ' a yukledik

        }

    }

    Şimdi Open Connection buton ‘un Click olayına girek global de tanımlamış olduğumuz datatable ‘ da sorgu oluşturarak dataGridView nesnesinde verileri görüntüleyelim.

    private void btnConnection_Click(object sender, EventArgs e){

      var sql = from p in dtl.AsEnumerable() select p;

      // AsEnumerable metodu ile verileri linq sorulari ile sorgulaya kullanabiliyoruz

       dataGridView1.DataSource = sql.AsDataView();

      //AsDataView metodu ile verileri dataGridView nesnesine DataSource ozelligine set ettik

    }

    Şimdi ekran çıktısına ve yazdığımızın kodun durumuna bakalım.

    mysqlinq2_thumb2

    Yazdığımız kodun doğru çalıştığını gördükten sonra Select And Where buton ‘ un click onayanına girerek Id numarasına göre filtreleme yapalım . Şimdi kodlarımızı görelim.

    private void btnSelectAndWhere_Click(object sender, EventArgs e){

      dataGridView1.DataSource = null;//dataGridView nesnesin Datasource ozelligini null yaparak bosaltik

      var sql = from p in dtl.AsEnumerable()

      where p.Field<int>("Id") == 2//linq sorgularinda kullandigimiz basit bir sorgulama gerceklesitirdik

      select new //Anonymous seklinde yazarak kullandik

      {

      Ad = p.Field<string>("Ad"),

       //gelen verilerin null olmasina binayen hata ile sonuclanmamasi icin Field yapisini kullaniyoruz

       //p.Field<veri_turu>(kolon_Ad) seklinde tanimlaniyor

       Soyad = p.Field<string>("Soyad"),

      No = p.Field<int>("Id")

       };

       DataTable dt = new DataTable();//yeni bir DataTable olusturduk.

      dt.Columns.Add("Id");

      //Olusturulan dataTable icerisinde yeni kolonlar olusturduk

      dt.Columns.Add("Ad");//ve Alanlara isilendilidi

      dt.Columns.Add("Soyad");

      foreach (var p in sql)//foreach dongusu kullarak yapmis oldugunuz sorgunu icinde dolasalim

      {

       dt.Rows.Add(p.No, p.Ad, p.Soyad);

      //DataTable kayitlari ekliyoruz.

       }

    dataGridView1.DataSource = dt;//DataSource 'e DataTable set ederek dataGridView nesnesin de verileri  goruz.

      }

    Şimdi kodun gördükten sonra çalıştıralım ve görelim.

    mysqlinq3_thumb3

    Şimdi sıra geldi kayıt eklemeye ; yukarıda bahsettiğim gibi kayıt ekleme, silme ve güncelleme gibi işlemleri yapamaya bunları normal olarak MySql.Data nesnesinde yararlanarak yapacağız bu için bir tane Set metodu oluşturalım ve insert buton click olayı ile çağıralım.

    private void Set(int Id, string Ad, string Soyad){

    // daha onceki makalelerimizde de bahsetmis olduğumuz gibi veri ekleme işlemini gerçekleştireceğiz

    using (MySqlConnection con = new MySqlConnection(constr))

      {

       con.Open();//Baglanti Aciktik

        using (MySqlCommand cmd = new MySqlCommand("insert into personel values(@Id,@Ad,@Soyad)", con))//Sorguyu yolladik

      {

        cmd.Parameters.AddWithValue("@Id", MySqlDbType.Int32).Value = Id;//Alanlara iliskili olarak verileri ekledik

      cmd.Parameters.AddWithValue("@Ad", MySqlDbType.VarChar).Value = Ad;

      cmd.Parameters.AddWithValue("@Soyad", MySqlDbType.VarChar).Value = Soyad;

      cmd.ExecuteNonQuery();//veritabanina etki ettik

       }

      con.Close();//Baglantiyi kapattik

      }

      }

      private void btnInsert_Click(object sender, EventArgs e){

        Set(3, "bora", "beken");

       //Kayit ekleme islemini burada gerceklestiryoz

       GetData();//verileri tekrar sorgulayarak dataGridView nesnesine yukledik

    }

    Şimdi kodun gördükten sonra çalıştıralım ve görelim.

    mylsqlinq4_thumb4

    Bu makalemizin de sonuna gelik. LinqToDataset ‘ in mysql veritabanı üzeride sadece select işlemlerini yapılması çok zayıf bir olanak olması ile birlikte internet yaptığım araştırma da DBLinq ve LightSpeed denilen uygulamaların VS yükleyerek de kullanabiliyorsunuz ama bence LinqToDataset diğer araçlara göre daha avantaj olduğunuz düşünüyorum. Çalışmanın yararlı olması dileği ile herkese kolay gelsin.