Alfabetik Sıralama :ABCDEFGHIJKLMNOPQRSTUVWXYZ -


Geliştirdiğim bir prejenin bir bölümünde mobil cihazlar kullanmam gerekti. Firmada bazı kullanıcıların sabit bir masası olmamasına rağmen bilgi girişi yapması gerekiyordu. Bu aşamada hiç kullanmadığım mobil cihazlarını araştırmaya başladım.

.NET ortamında kod yazmaya başladığım günden bu yana programcılığa bakışım ve dahası yapacağım projelere olan yaklaşımım baştan sona değişti. Aşağıdaki bahsedeceğim konuları inceleyince siz de göreceksiniz ki mobil uygulamalar geliştirmek ve bunları kullanmak gerçekten de çok kolay.

Şimdi Visual C#.NET programımızı çalıştırıp yeni bir proje açalım ve aşağıdaki resimde görüldüğü gibi Smart Device Application´u seçelim, kodmuzu c# olarak belirtelim. Proje adı olarakta mobilFindik verelim. (Resimi büyütmek için üzerine tıklayın.)

 

 

 

Bu seçimden sonra karşımıza iki alternatif gelecek: Windows CE ve PDA. Bunlardan öncelikle WindowsCE´yi seçelim. Birazdan iki sistem arasındaki farkı görsel anlamda inceleme imkanınız olacak.

 

Artık Windows CE projemiz açıldı ve kodlarımızı yazabiliriz. .cs yapısını inceleyecek olursak aşağıdaki kodların bir windows formu oluşturduğumuzda gelen default kodlardan bir farkı yoktur.

 

KOD:

using System;

using System.Drawing;

using System.Collections;

using System.Windows.Forms;

using System.Data;

namespace mobilFindik

{

/// <summary>

/// Summary description for Form1.

/// </summary>

public class Form1 : System.Windows.Forms.Form

{

public Form1()

{

//

// Required for Windows Form Designer support

//

InitializeComponent();

//

// TODO: Add any constructor code after InitializeComponent call

//

}

/// <summary>

/// Clean up any resources being used.

/// </summary>

protected override void Dispose( bool disposing )

{

base.Dispose( disposing );

}

#region Windows Form Designer generated code

/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

//

// Form1

//

this.Text = "Form1";

this.Load += new System.EventHandler(this.Form1_Load);

}

#endregion

/// <summary>

/// The main entry point for the application.

/// </summary>

static void Main()

{

Application.Run(new Form1());

}

private void Form1_Load(object sender, System.EventArgs e)

{

}

}

}

 
 
İlk önce basit bir "Merhaba Dünya" uygulaması yapalım. Bunun için formumuza bir textbox, bir label ve bir de buton ekleyelim.
TextBoxın Adı: textBox1
Butonun Adı: button1
Label´in Adı: label1
 
Görüntüsü aşağıdaki gibi olmalı:
 
 
Şimdi butona bastığımızda textbox içindeki yazı label´e yazılsın ve bir uyarı mesajı olarak merhaba dönya yazdıralım. Butona iki kere tıklayın ve aşağıdaki kodları yazalım.
 
  
KOD:

private void button1_Click(object sender, System.EventArgs e)

{

label1.Text = textBox1.Text;

MessageBox.Show("merhaba dünya");

}

 
burada yaptığımız butona tıklandığında
 
label1.Text = textBox1.Text;
 
satırıyla textbox içindeki yazıyı label içine yazdırdık. Altındaki mesaj satırında ise ekrana "merhaba dünya" uyarısı verdik.
 
MessageBox.Show("merhaba dünya");
 
Şimdi kodlarımızın nasıl çalıştığını önizlemek için projemizi F5 tuşuna basarak çalıştıralım. Bence işin en heyecan verici yeri burası, çünkü kodlarımız derlenmeye başladığında WinCE işletim sistemi sanal olarak makinamızda çalışmaya başlayacaktır. Aşağıdaki resimde görüldüğü gibi derleme seçenekleri çıkacaktır. Burada emulator´ü seçelim.
 
 
İşletim sistemi açıldığında biraz beklemeniz gerekebilir. İlk defa çalışmasında biraz yavaş kalabiliyor. Kodların WinCe içinde derlendiğini gösteren bir pencerede açılması gerekir.
 
 
Derleme işlemi bittikten sonra programımız çalışmaya başlar.
 
 
 
Şimdi TextBox içine yazımızı yazıp butonumuza tıklayalım. sonuc aşağıdaki gibi olmalı:
 

 

 

 
Bu konumuzun başlığı SqlServer CE. Ancak şu ana kadar sql server ile ilgili hiçbir işlem yapmadık. Şu an da winCe işletim sistemimizin başlat cubuğuna tıklayalım ve oradaki programlara bir bakalım.
 
 
Görüldüğü gibi default olarak sadece birkaç program geliyor. SqlServer ortalıklarda yok. Peki yüklemek için ne yapacağız? Bu soruya cevap aldığımda ben çok şaşırmıştım, çünkü sqlServer´ı WinCE üzerinde kurabilmek için sadece kod başına
using System.SqlServerCe;
 
yazmanız yeterli! Bu namespace´i referans göstermek için References kısmından Add diyerek SqlServerCe.Dll´ini import etmemiz gerekir.
 

 

Şimdi çalışan programımızı durduralım. Hali hazırdaki butonumuza çift tıklayıp bir önceki yazdığımız kodlara gelelim ve orayı temizleyelim. TextBox´ı ve Label´i silelim. Görüntüsü aşağıdaki gibi olmalı:

 
 
KOD:

using System;

using System.Drawing;

using System.Collections;

using System.Windows.Forms;

using System.Data;

namespace mobilFindik

{

/// <summary>

/// Summary description for Form1.

/// </summary>

public class Form1 : System.Windows.Forms.Form

{

private System.Windows.Forms.Button button1;

public Form1()

{

//

// Required for Windows Form Designer support

//

InitializeComponent();

//

// TODO: Add any constructor code after InitializeComponent call

//

}

/// <summary>

/// Clean up any resources being used.

/// </summary>

protected override void Dispose( bool disposing )

{

base.Dispose( disposing );

}

#region Windows Form Designer generated code

/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.button1 = new System.Windows.Forms.Button();

//

// button1

//

this.button1.Location = new System.Drawing.Point(312, 16);

this.button1.Text = "İşlem Yap";

this.button1.Click += new System.EventHandler(this.button1_Click);

//

// Form1

//

this.Controls.Add(this.button1);

this.Text = "Form1";

this.Load += new System.EventHandler(this.Form1_Load);

}

#endregion

/// <summary>

/// The main entry point for the application.

/// </summary>

static void Main()

{

Application.Run(new Form1());

}

private void Form1_Load(object sender, System.EventArgs e)

{

}

private void button1_Click(object sender, System.EventArgs e)

{

}

}

}

 
üst kod bloglarımıza

using System.IO;

ekleyelim. Bunun nedeni birazdan database´in olup olmadığını System.IO kullanarak kontrol edeceğiz.
 
Butona tıkladığımızda yapılmasını istediğimiz işlem şudur; mevcut bir veritabanı var mı, eğerki varsa olumlu uyarı versin yoksa oluştursun ve buna göre uyarı alalım. hata olursa da gene hatamızı görelim. Butona çift tıkladığımızda yazacağımız kodlar şöyledir:
 
 
KOD:

//SqlServerCe dosyasının olup olmadığını kontrol ediyoruz.

//findikKurdu.sdf isminde dosyamız varsa Veritabanı var uyarısı alırız.

if (File.Exists("findikKurdu.sdf"))

{

MessageBox.Show("veritabanı var ");

}

else

{

//eğerki yoksa database´i oluşturuyoruz

SqlCeEngine Engine= new SqlCeEngine(@"DataSource=findikKurdu.sdf");

Engine.CreateDatabase();

Engine.Dispose();

MessageBox.Show("veritabanı oluştu ");

// DataBase oluştu. Şimdi tablomuzu oluşturalım.

//Baglan komutu kod başında tanımlanmıştı. Bunu açarak işlem yapıyoruz.

Baglan.Open();

// findik isminde bir tablo oluşturacağız. Tablo içinde uyeAdi isminde ve nvarchar tipinde bir de alanımız olacak.

SqlCeCommand komut=new SqlCeCommand("CREATE TABLE findik(uyeAdi nvarchar(20))", Baglan);

komut.ExecuteNonQuery();

//yukarıdaki kodlarla veritabanını ve tablomuzu oluşturmuştuk.

//şimdi ilk kaydımızı ekleyelim.

//uyeAdi hücresine stringi yazdırdım.

komut.CommandText="INSERT INTO findik(uyeAdi)VALUES (´NickNeyime´)";

komut.ExecuteNonQuery();

//İşlemlerimiz bittiği için bağlantımızı kapatalım.

//Asp yazarken bağlantıları kapatmakla uğraşmıyor olabilirsiniz.

//Ama tavsiyem .NET kodlarınızda sorun yaşamak için mutlaka bağlantılarınızı kapatın.

Baglan.Close();

//Toplam 13 satır kodla, Veritabanını oluşturduk, tablomuzu inşa ettik ve bir de kayıt ekledik...

}

 
Bütün .cs kodlarımız ise aşağıdaki gibidir:
 
KOD:

using System;

using System.Drawing;

using System.Collections;

using System.Windows.Forms;

using System.Data;

using System.IO;

using System.Data.SqlServerCe;

 

namespace mobilFindik

{

/// <summary>

/// Summary description for Form1.

/// </summary>

public class Form1 : System.Windows.Forms.Form

{

private System.Windows.Forms.Button button1;

private static SqlCeConnection Baglan= new SqlCeConnection("Data Source=findikKurdu.sdf");

public Form1()

{

//

// Required for Windows Form Designer support

//

InitializeComponent();

//

// TODO: Add any constructor code after InitializeComponent call

//

}

/// <summary>

/// Clean up any resources being used.

/// </summary>

protected override void Dispose( bool disposing )

{

base.Dispose( disposing );

}

#region Windows Form Designer generated code

/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.button1 = new System.Windows.Forms.Button();

//

// button1

//

this.button1.Location = new System.Drawing.Point(312, 16);

this.button1.Text = "Kontrol";

this.button1.Click += new System.EventHandler(this.button1_Click);

//

// Form1

//

this.Controls.Add(this.button1);

this.Text = "Form1";

this.Load += new System.EventHandler(this.Form1_Load);

}

#endregion

/// <summary>

/// The main entry point for the application.

/// </summary>

static void Main()

{

Application.Run(new Form1());

}

private void Form1_Load(object sender, System.EventArgs e)

{

}

private void button1_Click(object sender, System.EventArgs e)

{

//SqlServerCe dosyasının olup olmadığını kontrol ediyoruz.

//My Documents içinde findikKurdu.sdf isminde dosyamız varsa Veritabanı var uyarısı alırız.

if (File.Exists("findikKurdu.sdf"))

{

MessageBox.Show("veritabanı var ");

}

else

{

//eğerki yoksa database´i oluşturuyoruz

SqlCeEngine Engine= new SqlCeEngine(@"DataSource=findikKurdu.sdf");

Engine.CreateDatabase();

Engine.Dispose();

MessageBox.Show("veritabanı oluştu ");

// DataBase oluştu. Şimdi tablomuzu oluşturalım.

//Baglan komutu kod başında tanımlanmıştı. Bunu açarak işlem yapıyoruz.

Baglan.Open();

// findik isminde bir tablo oluşturacağız. Tablo içinde uyeAdi isminde ve nvarchar tipinde bir de alanımız olacak.

SqlCeCommand komut=new SqlCeCommand("CREATE TABLE findik(uyeAdi nvarchar(20))", Baglan);

komut.ExecuteNonQuery();

//yukarıdaki kodlarla veritabanını ve tablomuzu oluşturmuştuk.

//şimdi ilk kaydımızı ekleyelim.

//uyeAdi hücresine stringi yazdırdım.

komut.CommandText="INSERT INTO findik(uyeAdi)VALUES (´NickNeyime´)";

komut.ExecuteNonQuery();

//İşlemlerimiz bittiği için bağlantımızı kapatalım.

//Asp yazarken bağlantıları kapatmakla uğraşmıyor olabilirsiniz.

//Ama tavsiyem .NET kodlarınızda sorun yaşamak için mutlaka bağlantılarınızı kapatın.

Baglan.Close();

//Toplam 13 satır kodla, Veritabanını oluşturduk, tablomuzu inşa ettik ve bir de kayıt ekledik...

}

 

}

}

}

 
 
 
 
Bu kodumuzu da F5´e basarak çalıştıralım. Bu esnada şayetki bir önceki çalıştırdığımız WinCE çalışmaya devam ediyorsa problem olmaz. Yani her defasında WinCE´yi kapatıp tekrar açmanıza gerek yok. Yukarıdaki kodlarımız çalıştığında aşağıdaki ekran görüntüsünü elde ederiz.
 
 
Butona ilk defa bastığımızda, program kontol işlemini yapıp veritabanını bulamazsa gerekli işlemleri yapar ve tablomuzu oluşturur. Butona ikinci bir defa bastığınızda doğal olarak "veritabanı var" uyarısı alırız.
 
 
 
 
 
 
 
 
Bu işlemi kontrol etmek için, My Computer simgesine tıklayıp orada oluşan veritabanımızı görebiliriz.
 
 
 
 
 Bu veritabanını SqlServerCe Query Programını kullanarakta görebiliriz. Bunu gerçekleştirebilmek yukarıdaki resimde görülen veritabanı simgesine iki kere tıklamamız yeterli. Bu arada yazının başında başlat çubuğundaki programlar sekmesine bakmıştık. Şimdi tekrar göz atacak olursak sqlServer Query programının geldiğini görürüz.
 
 
 
 
 Aşağıdaki görüntüde Bilgisayarım içindeki veritabanımıza çift tıkladığımızda açılan veritabanımızı inceleyebiliriz:
 
 
 
 
 
 Bu programı kullanarak sql komutları yazıp çalıştırabiliriz. Ançak ufak bir uyarım olacak; benim kullandığım versiyonda dil ayarı ingilizce olduğunda klavyeniz sorun çıkartabilir. aşağıda basit bir select komutunu çalıştırıyoruz.
 
 
 
 
 Bu komutu çalıştırmak için yukarıdaki yeşil icon´a tıklamamız yeterlidir. Komut çalıştırıldıktan sonra karşımıza Notes alanında çalışan komutun raporu gelir:
 
 
 
Grid tabı altında select ile ulaştığımız sorgu sonucu listelenir.
 
 
Bu dersimizin ilk bölümü olsun. Bir sonraki dersimizde kayıt ekleme silme ve listeleme işlemlerini yapacağız. Pocket PC´lerde bu kodlarımızın nasıl çalıştığına bakacağız. Download kısmından yukarıdaki projeyi indirebilirsiniz. Konuyla ilgili sorularınız için forumu kullanabilirsiniz. İyi çalışmalar Dilerim.
 
Kaynaklar:


Konu: Yeni Bir Dünya SqlServerCE (Bölüm 1)
 
Okunma Sayısı : 56
Eklenme Tarihi : 31 Ocak 2007, Çarşamba
SONRAKI BILGI : Meta Tag Nedir?   
Forum Linki:
Aranan Kelime:
   

 

 

Copyright © 2008 Temha.neT