.NET üstünde MySQL ile çalışma

MySQL, çok sayıda sistemde çalışan multi threaded ve çok kullanıcılı bir veritabanı yönetim sistemidir. SQL Server sürümlerine bir alternatif olarak düşünebiliriz. Gerçek düyna da SQL Server'a rakip olabilecek birden fazla Veritabanı Yönetim Sistemi bulunmaktadır. Oracle DB saymazsak MySQL en çok kullanılan alternatiflerden biridir. Aynı zamanda sadece Windows platformlarında değil UNIX, OS/2 ve Linux platformlarında da hızlı bir performans sergilemektedir. Açık kaynak kodlu bir sistem olduğu için diğer platformlarada port edilebilir durumdadır. ODBC sürücüleri olduğundan .NET üzerinde de kolaylıkla MySQL veritabanı yönetim sistemine erişerek MySQL tabanlı uygulamalar geliştirebiliriz.

MySQL tarihçesi şöyledir (Wikipedia’dan alıntıdır);

1994 MySQL'in geliştirilmesine başlandı.

1995 MySQL ilk sürümü yayınlandı.

2001 yılında MySQL 3.23 yayınlandı.

2004 MySQL 4.1 beta sürümü, ve gerçek sürümü Ekim 2004 yılında yayınlandı. (R-trees and B-trees, subqueries, prepared statements)

2008: MySQL 5.1 sürümü yayınlandı. (event scheduler, partitioning, plugin API, row-based replication, server log tables)

2008 Ocak: Sun Microsystems, bir milyar dolara MySQL'i satın aldı.

2009 Nisan: Oracle, Sun Microsystems'i satın aldı. Oracle, MySQL'i geliştirmeye devam edeceğini duyurdu.

 

MySQL Aşağıdaki yapıladı desteklemektedir;

Tables (Tablo)

Views (Görüntü) (Görüntüleme)

Procedures (Prosedür)

Triggers

Cursors

 

 

MySQL veritabanı yönetim sistemini kurduktan sonra doğrudan .NET uygulamaları altında C# ile geliştirme yapamazsınız. Bunun için .NET Connector’a ihtiyacınız var. MySQL ADO.NET sürücüsünü mysql sitesinden indirebilirsiniz.

 

 

 MySQL sürücüsünü kurmak indirdikten sonra bilgisayarınıza şöyle kurabilirsiniz;

 

 

 Setup Type kısmında istediğiniz kurulum tipini seçeceksiniz.

 

 

 Complete seçeneğini seçerseniz tüm frameworkler ve compact framework gibi alternatif araçlarda sisteminize yüklenecektir.

 

 

 

 

 MySQL veritabanı motorunun yönetimini yapacağınız uygulama MySQL Workbench uygulamasıdır. Bu uygulama SQL Server üstündeki Management Studio’ya denk gelmektedir.

 

 

 Workbench ekranı üstünden birden fazla connection ekleyebilir veya  yerel sunucunuzdaki verilerle çalışıp yönetebilirsiniz.

 

 

 Workbenc üzerinde birden fazla araç barınmaktadır.

 

 

 Tables, Views, Stored Procedures ve Functions kısmından işlevsel tüm özellikleri kullanabilirsiniz.

 

 

 Aynı SQL Server üzerinde kullandığımız sql cümleciklerini ufak bazı değişikliklerle MySQL üzerinde de kullanabilirsiniz. Select * from yapısı aynı şekilde MySQL içinde de geçerlidir.

 

 

 Farklı bir lokasyondaki veritabanına bağlanmak için aynı şekilde connect to database seçeneğini seçerek bağlantı sağlayabilirsiniz.

 

 

.NET uygulamamızda C# ile MySQL bağlantılı yazılım yazmak için öncelikle referanslar kısmından yüklediğimiz mysql connector’un dll paketlerini eklememiz gerekmektedir.

 

 Kullanacağımız MySQL.Data referansı bize gerekli alt yapıyı sağlayacaktır. Aynı zamanda Entity Framework yapısı içinde destek bulunmaktadır.

 

 

 Referanslara eklediğimizde MySql.Data başlığının projemize eklenmiş olduğunu görebiliriz.

 

 

Uygulamamızı yazarken gerekli olan namespace’ler MySql.Data, MySql, MySql.Data.MySqlClient isim alanlarıdır. Sql Server kodlaması yaparken kullandığımız SqlConnection gibi sınıfların isimleri bu isim alanı altında MySqlConnection gibi ufak değişiklikler göstermiştir. Aynı şekilde SqlCommand MySql ile kodlama yaparken MySqlCommand ismini almıştır. SqlDataAdapter ismi ise MySqlDataAdapter olmuştur. Bu şekilde klasik Ado.NET kodlaması yapabilirsiniz.

MySQL ile bağlanan ve işlemler yapan bir sınıf aşağıdaki şekilde tanımlanmış ve kodlanmıştır.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Data.SqlClient;

using System.Data;

using MySql.Data;

using MySql;

using MySql.Data.MySqlClient;

 

namespace sample_db

{

    public class dblayer

    {

        string connectionstr;

 

        public dblayer()

        {

            connectionstr = "Network Address=IP_Adresi;" +

                                                   "Initial Catalog='database_ismi';" +

                                                       "Persist Security Info=no;" +

                                                   "User Name='kullanıcı_ismi';" +

                                                   "Password='parola'";

        }

 

 

        public DataTable etkinlikleri_al()

        {

            DataTable dt = null;

            try

            {

                MySqlConnection connection = new MySqlConnection(connectionstr);

                string mysqlquery = "SELECT * FROM sample_db.etkinlik order by etkinlik.tarih desc";

                MySqlCommand command = new MySqlCommand(mysqlquery, connection);

                connection.Open();

                dt = new DataTable();

                MySqlDataAdapter adapter = new MySqlDataAdapter(command);

                adapter.Fill(dt);

            }

            catch

            {

                return null;

            }

            return dt;

        }

 

        public DataTable projeleri_al()

        {

            DataTable dt = null;

            try

            {

                MySqlConnection connection = new MySqlConnection(connectionstr);

                string mysqlquery = "SELECT * FROM sample_db.proje order by id desc";

                MySqlCommand command = new MySqlCommand(mysqlquery, connection);

                connection.Open();

                dt = new DataTable();

                MySqlDataAdapter adapter = new MySqlDataAdapter(command);

                adapter.Fill(dt);

            }

            catch

            {

                return null;

            }

            return dt;

        }

 

        public DataTable haberleri_al(string baslangic, string bitis)

        {

            DataTable dt = null;

            try

            {

                MySqlConnection connection = new MySqlConnection(connectionstr);

                string mysqlquery = "SELECT * FROM sample_db.haber where yayin_tarihi between " + baslangic + " and " + bitis + "order by haber.yayin_tarihi desc";

                MySqlCommand command = new MySqlCommand(mysqlquery, connection);

                connection.Open();

                dt = new DataTable();

                MySqlDataAdapter adapter = new MySqlDataAdapter(command);

                adapter.Fill(dt);

            }

            catch

            {

                return null;

            }

            return dt;

        }

 

        public DataTable duyurulari_al(string baslangic, string bitis)

        {

            DataTable dt = null;

            try

            {

                MySqlConnection connection = new MySqlConnection(connectionstr);

                string mysqlquery = "SELECT * FROM sample_db.haber where yayin_tarihi between "+baslangic+" and "+bitis+" order by haber.yayin_tarihi desc";

                MySqlCommand command = new MySqlCommand(mysqlquery, connection);

                connection.Open();

                dt = new DataTable();

                MySqlDataAdapter adapter = new MySqlDataAdapter(command);

                adapter.Fill(dt);

            }

            catch

            {

                return null;

            }

            return dt;

        }

 

    }

 

}

Yorum ekle