31 Aralık 2012 Pazartesi

Windows 8 Uygulamalarında Veritabanı Kullanımı 2

2 yorum


     Merhaba arkadaşlar, bugünkü konumuza geçen hafta kaldığımız yerden devam edeceğiz. Veritabanı konusu uygulamalarda önemli yer kapladığından dolayı bu konuyu iki hafta anlatmak daha mantıklı olur sanırsam. Bu hafta veritabanı olarak Windows 8 uygulamalarımızda Sqlite veritabanının nasıl kullanılıcağından bahsedeceğim. Aşamaları teker teker anlatacağım.


      İlk olarak "sqlite" kullanmak için projemize bir adet dll dosyası  eklememiz gerekli. Bu dll dosyası uygulamamızda "sqlite" veritabanını  kullanmamız için gerekli olan şeyleri uygulamamıza temin edecek. Bu dll i kullandığınız mimariye göre seçerek aşağıdaki linkten indirebilirsiniz:

http://sqlite.org/download.html



     Burada birkaç tane seçenek var, siz içerisinde dll dosyasını barındıran paketi indirmelisiniz. Bu paketi indirdikten sonra projemizin kök dizinine bu  dll dosyasını ekliyoruz. Ardından projemize sağ tıklıyoruz ve buradan "Managae Nuget Packages" seçeneğine tıklyoruz. Açılan pencereden solda "Online" seçeneğini seçiyoruz ve sağ üst köşedeki arama yerine "sqlite-net" yazıp çıkan eklentiyi kuruyoruz. Bu bize uygulamamızda iki adet dosya oluşturacak. Bunlar "SQLite.cs" ve "SQLitAasync.cs" dosyaları. Bu sınıflar uygulamamızda "sqlite"  kullanabilmemiz için gerekli olan kodları içeriyor.



     Şimdi de veritabanımızı oluşturmak için kodlarımızı yazmaya başlayalım. Oluşturduğumuz projenin "MainPage.cs" dosyasını aşağıdaki gibi düzenliyoruz:




 using SQLite;  
 using System;  
 using System.Collections.Generic;  
 using System.Diagnostics;  
 using System.IO;  
 using System.Linq;  
 using Windows.Foundation;  
 using Windows.Foundation.Collections;  
 using Windows.UI.Xaml;  
 using Windows.UI.Xaml.Controls;  
 using Windows.UI.Xaml.Controls.Primitives;  
 using Windows.UI.Xaml.Data;  
 using Windows.UI.Xaml.Input;  
 using Windows.UI.Xaml.Media;  
 using Windows.UI.Xaml.Navigation;  
 // The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238  
 namespace App1  
 {  
   /// <summary>  
   /// An empty page that can be used on its own or navigated to within a Frame.  
   /// </summary>  
   public sealed partial class MainPage : Page  
   {  
     public MainPage()  
     {  
       this.InitializeComponent();  
       CreateDatabase();  
       yol.Text = Windows.Storage.ApplicationData.Current.LocalFolder.Path.ToString();  
     }  
     /// <summary>  
     /// Invoked when this page is about to be displayed in a Frame.  
     /// </summary>  
     /// <param name="e">Event data that describes how this page was reached. The Parameter  
     /// property is typically used to configure the page.</param>  
     protected override void OnNavigatedTo(NavigationEventArgs e)  
     {  
     }  
     private async void CreateDatabase()  
     {  
       SQLiteAsyncConnection conn = new SQLiteAsyncConnection("people");  
       await conn.CreateTableAsync<Person>();  
     }  
     private async void Button_Click_1(object sender, RoutedEventArgs e)  
     {  
       SQLiteAsyncConnection conn = new SQLiteAsyncConnection("people");  
       Person person = new Person  
       {  
         Name = "Matteo",  
         Surname = "Pagani"  
       };  
       await conn.InsertAsync(person);  
     }  
    
   public class Person  
   {  
     [SQLite.AutoIncrement, SQLite.PrimaryKey]  
     public int ID { get; set; }  
     public string Name { get; set; }  
     public string Surname { get; set; }  
  }  
   }  
   
   
     Biraz buradaki kodları açıklayacak olursak "Person" sınıfında veritabanımız için gerekli olan sütunları belirliyoruz. Burada sadece id, isim ve soyisim aldık. Ayrıca id kısmını otomatik olarak artırdık ve birincil anahtar olarak belirttik. Uygulamamıza attığımız bir adet "buttonun" "click" olayına veritabanımıza bir adet kişi ekleyecek şekilde kodlarımızı yazdık. "CreateDatabase" metodunda da veritabanımızı oluşturduk ve bu metodu sayfa açıldığıda çalışacak şekilde "constructorda" çağırdık. Böylece uygulamamız çalıştığında veritabanımız otomatik olarak oluşturulacak ve "buttona" tıkladığımızda veritabanımıza bir adet verilen değerlerde veri ekleyecek.

     Peki bu veritabanındaki verileri somut olarak nasıl görebiliriz? Bu veriler bilgisayarımızda "isolated storeage" olarak saklanır. Bu verileri görmek için birkaç program kullanabiliriz. Aşağıda vereceğim linkten programı indirip verilerinizi görebilirsiniz:

http://sourceforge.net/projects/sqlitebrowser/

     Bu programı çalıştırdığınızda veritabanınızı açmak için veritabanınınızın bulunduğu klasörü bulmanız gerekli. Daha önce de belirttiğim gibi bu veriler "isolated storage" olarak saklandığından dolayı klasörü bulmak biraz zor olabilir. Bunun için ben uygulamamda bir adet "textBlock" kullandım ve bunun değerine program çalıştığında atanmak üzere veritabanı dosyamın yolunu yazdırdım. Bu kod kısmı aşağıdaki kısım:



 yol.Text = Windows.Storage.ApplicationData.Current.LocalFolder.Path.ToString();   

    Daha sonra indirdiğimiz programdan bu yolu belirterek uygulamamızı açabiliriz:



     Son olarak uygulamamızın dosya yapısını da ekliyorum:



     Görüldüğü gibi eklediğimiz veri programda rahatça gözüküyor. Böylece basit bir veritabanı uygulaması yapmış olduk. Herkese iyi kodlamalar...

2 yorum:

  1. hocam bu veri tabanına veri eklendikten sonra program kapatışdı tekrar açıldı daha önceki verileri eklediğimiz veri tabanını nasıl kullanacağız.

    YanıtlaSil
  2. http://sourceforge.net/projects/sqlitebrowser/

    Yukarıdaki program ile, veritabanınızın bulunduğu yolu verip veri tabanı bilgilerinize erişebilirsiniz

    YanıtlaSil