Asp.net FireBird Veritabanı Bağlantısı

FireBird Veritabanı, stored procedure(saklı yordam), trigger(tetikleyici) gibi gelişmiş özellikleri barındıran eski bir veritabanıdır. Ücretsiz olduğu için birçok şiirket ve kurum tarafından da kullanılmaktadır.  FireBird Veritabanını aşağıdaki adresten indirebilirsiniz. En son 3.0 sürümü bulunmaktadır, Windows, Android, MacOSX ve Linux işletim sistemlerinde sorunsuz çalışır. 


https://www.firebirdsql.org/en/firebird-3-0/


FireBird'ü yönetmek üçüncü parti bir yazılıma ihtiyacımız olacak, bu yazılımların tam listesini aşağıdaki bağlantıdan bulabilirsiniz. Bunlardan IBExpert ücretlidir ama kolay kullanılabilir bir yönetim yazılımıdır. 

https://www.firebirdsql.org/en/third-party-tools/

Aşağıdaki adresten EMS SQL Manager for FireBird yazılımını da indirebilirsiniz.
https://www.sqlmanager.net/en/tools/free

FireBird'ü Visual Studio içinde kullanabilmek için FireBird web sitesinden  Nuget paketini indirip kullanabilirsiniz. Aşağıdaki bağlantıdan kurulum Console komutu yer almaktadır.

https://www.firebirdsql.org/en/net-provider/




Visual Studio'ya Nuget'i ekledikten sonra bir Asp.net projesi oluşturup aşağıdaki namespace kütüphanelerini eklemelisiniz. Daha önce SQL Server veya Access dışında başka veritabanları ile çalışmışsanız dkkat ederseniz olmazsa olmaz kütüphanemiz System.Data kütüphanesi. FireBird ile Asp.net arasında irtibatı kuran DLL dosyarını da projemize dahil etmek için FirebirdSql.Data.FirebirdClient kütüphanesini kullanıyoruz.

using System.Data; 
using System.Configuration; 
using FirebirdSql.Data.FirebirdClient;

Web.config içine aşağıdaki FireBird Bağlantı stringini yerleştirirseniz projemizin içindeki tüm formlardan bağlanabiliriz. FireBird'de varsayılan yönetici SYSDBA şifresi ise masterkey'dir. 3050 nolu port üzerinden haberleşir.

<connectionStrings>
   
<add name="FireBirdBaglantisi"  connectionString="
User=SYSDBA;Password=masterkey;Database=C:\DB\SAMPLEDB.FDB;DataSource=localhost;
                 Port=3050;Dialect=3;Charset=NONE;Role=;Connection lifetime=15;Pooling=true;
                 MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;"/>
  </connectionStrings>

Bundan sonra WebFormumuz üzerine bir GridView nesnesi, iki tane textbox, bir buton ekleyip aşağıdaki ekran görüntüsünü oluşturunuz.




GridView içinde tablomuzu göstermek için aşağıdaki BindGrid metodu oluşturup, Page_Load() olayında çağırıyoruz.  Kodların birçoğu MySQL Asp.net bağlantısı ile hemen hemen aynı mantıkta olduğu için açıklamayacağım, isteyenler MySQL Asp.net yazımı okuyabilirler.


   protected void Page_Load(object sender, EventArgs e)
        {
 
            if (!this.IsPostBack)
            {
                this.BindGrid();
            }
 
        }
 

Aşağıdaki BindGrid yönetemi ile FireBird veritabanına bağlanıp PERSONEL tablomuzdan ad ve soyad alanlarını çekiyoruz.
 
private void BindGrid()
{
string constr = ConfigurationManager.ConnectionStrings["FireBirdBaglantisi"].ConnectionString;
using (FbConnection con = new FbConnection(constr))
     {
                using (FbCommand cmd = new FbCommand("SELECT * FROM PERSONEL"))
                {
                    using (FbDataAdapter fda = new FbDataAdapter())
                    {
                        cmd.Connection = con;
                        fda.SelectCommand = cmd;
                        using (DataTable dt = new DataTable())
                        {
                            fda.Fill(dt);
                            GridView1.DataSource = dt;
                            GridView1.DataBind();
                        }
                    }
                }
            }
        }
 

Kaydet butonuna tıklayıp aşağıdaki kodları yazınız. Burada daha önce Web.config dosyası içinde tanımlamış olduğumuz FireBirdBaglantisi Connection String'ini çağırdık.

protected void btnKaydet_Click(object sender, EventArgs e)
{
 string constr = ConfigurationManager.ConnectionStrings["FireBirdBaglantisi"].ConnectionString;
 FbConnection con = new FbConnection(constr);
 con.Open();
 FbTransaction myTransaction = con.BeginTransaction();
 FbCommand myCommand = new FbCommand();
 
            myCommand.CommandText =
            "INSERT INTO PERSONEL (ADI, SOYADI) VALUES (@adi, @soyadi)";
            myCommand.Connection = con;
            myCommand.Transaction = myTransaction;
 
           string adi = txtAdi.Text;
            string soyadi = txtSoyadi.Text;
            myCommand.Parameters.Add("@adi", adi);
            myCommand.Parameters.Add("@soyadi", soyadi);
            myCommand.ExecuteNonQuery();
            myTransaction.Commit();
 
        
            myCommand.Dispose();
 
            con.Close();
            this.BindGrid();
        }
 



Mutlu kodlamalar,
Oğuzhan TAŞ
Aralık 2018
 
Bookmark and Share