30 Mayıs 2007 Çarşamba

Exeli DataBase Olarak nasıl Kullanırız.

Hemen hemen heryerde karşımıza çıkan bir sorudur Exel'i database olarak kullanabilirmiyiz yada nasıl kullanırız.
Cevabı aslında çok basit: Evet kullanbiliriz Peki nasıl.? işte şöyle =>

Önce basit formatlı bir excel dökümanı oluşturalım.;

Şimdi bu excel dökümanını ADO.Net tarafından erişilebilir bir tablo haline getirelim. Bu kısım çok önemli sakın kormayın:) oldukça basit bir işlem.

Microsoft Excel'de çalıştığımız alanı seçili hale getirdikten sonra Insert>Name>Define komutunu kullanarak hazırladığımız bu tabloya bir isim ataması yapıyoruz.






Artık tanımladığımız tablo ADO.Net tarafından erişilebilir hale geldi. Bu aşamadan sonra Microsoft Excel dökümanımızı kapatabilir ve OleDb işlemlerimizi gerçekleştirebiliriz.

şüphesiz tüm veritabanı sistemlerinde olduğu gibi önce bir Connection(bağlantı) oluşturmamız gerekiyor. Bunun için OLEDB Providerlarını kullanacağız.

private void button1_Click(object sender, EventArgs e)
{
//OleDbConnection'ımızı tanımlarken ConnectionString'e dikkat
//Burada klasik Access veritabanı bağlantısına benzer bir yapı izliyoruz ancak en son
//kısımda yer alan Extended Properties=Excel 8.0; satırı bizim bir excel dosyası kullan-
//dığımızı belirtiyor.

OleDbConnection Baglanti = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents And Settings\\yunus\\Desktop\\ADONet_Excel_Uygulama\\TBL_ARAC.xls; Extended Properties=Excel 8.0;");

DataSet objDS = new DataSet();
//OleDbdataAdapter nesnesine sanki normal bir tablo çalıştırıyormuşuz gibi bir sorgu ifadesi
//tanımlıyorum. Bunu yukarıda seçtiğim alan için bir tablo ismi vermiş olmama borçluyum.

OleDbDataAdapter objDA = new OleDbDataAdapter("Select * from TBL_ARAC", Baglanti);
objDA.Fill(objDS, "MyAracTable");

dataGridView1.DataSource = objDS.Tables["MyAracTable"];
}

Yazdığımız 5 satırlık C# kodu ile Excel veritabanımıza bağlantı kurmuş olduk.



Buraya kadar veriyi almak ve ekrana getirmek için uğraştık.
Şimdi aynı veriyi bir datareader ile okuyalım ve filtreleme yapalım. Ardından da veriyi update etme kısmını yapalım;


Yeni bir uygulama yaratıyorum.

Şimdi Form'un Load olayında "Renault" markasına sahip otomobili bu ekrana getirelim.

public static OleDbConnection Baglanti = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents And Settings\\yunus\\Desktop\\ADONet_Excel_Uygulama2\\TBL_ARAC.xls; Extended Properties=Excel 8.0;");

OleDbDataReader Okuyucu;

private void Form1_Load(object sender, EventArgs e)
{
OleDbCommand Komut = new OleDbCommand("Select * from TBL_ARAC where Marka = 'Renault'", Baglanti);
Baglanti.Open();
Okuyucu = Komut.ExecuteReader();

if (Okuyucu.Read())
{
textBox1.Text = Okuyucu["Marka"].ToString();
textBox2.Text = Okuyucu["Model"].ToString();
textBox3.Text = Okuyucu["MaxHiz"].ToString();
textBox4.Text = Okuyucu["YYili"].ToString();
}
else
{
MessageBox.Show("#### OKUNACAK BİLGİ BULUNAMADI ####");
}

}



Ve şimdi sırada bu kaydı güncelleyecek kod bloğunda.

private void button1_Click(object sender, EventArgs e)
{
OleDbCommand Komut = new OleDbCommand("Update TBL_ARAC Set Marka = '" + textBox1.Text + "', Model = '" + textBox2.Text + "', MaxHiz = '" + textBox3.Text + "', YYili = '" + textBox4.Text + "' where ID = " + Convert.ToInt16(Okuyucu["ID"].ToString()), Baglanti);

Komut.ExecuteNonQuery();
MessageBox.Show("#### KAYIT GÜNCELLENDİ ####");
}





Bu şekilde exelden veri çekmeyi güncellemeyi özetlemiş olduk.




22 Mayıs 2007 Salı

DEFRAG NEDİR ve NASIL YAPILIR.?

Bilgisayarın harddiski zamanla üzerine birşeylerin kaydedilmesi , silinmesi ve çeşitli programların oyunların kurulması artı kurulu olan ve yüklü olanların silinmesi sonucu aşırı ve dağınık hafıza birikmelerine neden olacaktır. Bu durum harddiskin çalışmasını olumsuz yönde etkileyecektir. bu durumdan kurtulmak için defrag dediğimiz yöntemi yapmamız bize çok büyük yarar sağlayacaktır.
Defrag işlemini kısaca şöyle açıklayabiliriz; Harddsikimizi bir kütüphane gibi düşünelim. kaydetdiğimiz mp3 olsun film olsun hertürlü veriyide kütüphanenin raflarına konulan kitaplar olarak düşünelim. Kitap koydukça kütüphanenin yükü artar bu gayet normal pekala silme işlemimiz sonucunda nasıl bir şey oluyo diye düşünürsek..! Sildiğimiz her veri harddiskin üzerinden kaybolur ama yeri orada kalır. Hatta veri daha alt yerlerde indexlenir. Recovery işlemini düşünün sonra verileri nasıl geri alıyoruz sizce.? Silinme işlemi kitabın raftan alınmasıdır aslında. kitap alınır ama kapladığı alan orada kalır. defrag (birleştirme) işlemi ise bu boşlukları birleştirrek harddiskte bir bakıma alan açar.
DEFRAG NASIL YAPILIR.?
* Bu yordamı gerçekleştirmek için yerel bilgisayarda Administrators grubunun üyesi olmanız veya uygun yetki verilmiş bir temsilci olmanız gerekir. Bilgisayar bir etki alanına katılmışsa, Domain Admins grubunun üyeleri bu yordamı gerçekleştirebilir. En iyi güvenlik yöntemi olarak, bu yordamı gerçekleştirmek için Farklı Çalıştır seçeneğini kullanın.
* Disk Birleştiricisi’ni açmak için Başlat'ı tıklatın, Tüm programlar'ın, Donatılar'ın ve Sistem Araçları'nın üzerine gelin, sonra Disk Birleştiricisi’ni tıklatın.
* Birimleri birleştirmeden önce çözümlemeniz gerekir. Böylece, birleştirmeye zaman ayırmanız gerekip gerekmediğini saptayabilirsiniz.
* Bir birimin Disk Birleştiricisi tarafından tümüyle ve yeterli biçimde birleştirilebilmesi için en az %15 boş alan olması gerekir. Disk Birleştiricisi bu alanı dosya parçaları için bir sıralama alanı olarak kullanır. Birimin %15'ten az boş alanı varsa, Disk Birleştiricisi birimin yalnızca bir kısmını birleştirir. Birimdeki boş yer miktarını artırmak için gerekmeyen dosyaları silin veya başka bir diske taşıyın.
* Dosya sistemi tarafından bozukluk olasılığını göstermek üzere kirli olarak işaretlenmiş birimleri birleştiremezsiniz. Kirli birimi birleştirmeden önce birim üzerinde chkdsk komutunu çalıştırmanız gerekir. Fsutil dirty query komutunu kullanarak bir birimin kirli olup olmadığını belirleyebilirsiniz. chkdsk ve fsutil dirty komutları hakkında daha fazla bilgi için İlgili Konular'a bakın.
* Disk Birleştiricisi'nin bir birimi birleştirmesi için gereken süre birimin boyutu, birimdeki dosya sayısı, birimdeki parçalanmanın oranı ve kullanılabilir sistem kaynakları gibi birçok etkene bağlıdır.
* Yalnızca yerel dosya sisteminin birimlerini birleştirebilir ve aynı anda yalnızca bir Disk Birleştiricisi oturumu çalıştırabilirsiniz.
* Bir birimi birleştirmeyi kesmek veya geçici olarak duraklatmak için sırasıyla Durdur'u veya Duraklat'ı tıklatın.
Bu şekilde harddiskimizin hem ömrünü artırmış oluruz hemde hızını artırmış oluruz.



21 Mayıs 2007 Pazartesi

ŞOKK...! YAZAR OLMAK İSTERMİSİNİZ....!

ARTIK YAZAR OLMAK ÇOK AMA ÇOK KOLAY.
SADECE YAZACAK BİŞEYLERİNİZİN OLMASI YETERLİ. EĞER SİZİNDE YAZACAK BİRŞEYLERİNİZ VARSA NE DURUYORSUNUZ SİZDE YAZAR OLUN.
Evet evet şaka yapmıyorum, yazar olmak çok basit. Eskiden yazar olmak için önce süper bişeler yazmanız sonrada yazmak da yetmiyo, yazdığınız bu şeyleri matbalara yayınevlerine beğendirmeniz, şuna beğendirmeniz değilde, torpil veya rüşvet herneyse onu yapmanız gerekiyodu diyelim. Şimdi ölemi.? Tabi ki hayır.! Gelişen teknoloji sağolsun her düşünceye hiçbir ayrım yapmadan ortaya çıkma (yayımlanma) hakkını tanıyor. Nasıl mı çok baasit sadece bilgisayar ve internet olması yeter. (hatta abartalım; bunların olmasınada gerek yok İNTERNET KAFELER yeter.)
İşte sizlere yazarlığın yolunu açan ve bilgilerinizi en iyi şekilde sunmanız için yapmamız gereken şeylerden sadece biri tr.wikipedia.org veya buna benzer birçok site sizleri bekliyor. Bu gibi bilgi paylaşım siteleri EkşiSözlük gibi yine bilgi aktarımını sağlayan sitelerde yazar olmanız için saadece kullanıcı kadınız yaptırmak ve bilginiz olduğu konuda bilginizi yazıya dökmek (YAZAR OLMAK) gerekiyor. Vikipedide ise Yapacağınız burada bir kullanıcı hesabı açamak gerisinide vikipedi eniyi şekilde sizi yönlendirecek zaten. Bildiğiniz, yazmak istediğiniz, hipoteziniz, tezleriniz hikayeleriniz herşekilde (sadece kendinize ait veya telif hakkı olmaması şartı ile.) yazabilir ve böylelikle ; Çoğu yazarın yazıp yayınlayarak ulaştığı kitleden daha büyük bir kitleye hitap edecek ve hatta bukadar büyük bir kitleye ulaşacak. Sizin yazdıklarınızı kaynak olarak kullananlar bile olacak. Hatta eleştiriler gelecek ve sizde o eleştirilerden ders çıkarta bileceksiniz...
Ben artık bir yazarım.......
SİZ NEDEN YAZAR OLMAYASINIZ.

5 Mayıs 2007 Cumartesi

SQL 2005'de Küçük Ama Etkili Bir İpUCUUU

create proc sel_encoksatanX
@Adet int
as

select top @Adet
productName,sum( Quantity) --sum toplamdır
as satısAdedi
from [Order Details]
join products
on[order details].ProductID=products.productID
group by productName
order by sum(quantity)DESC

NOT: Bu query bloğu çalışmaz..! çünkü parametreyi (@Adet) gövde metninde tanımladık. Çalışması için şöle bir formülü varrrr...!


create proc sel_encoksatanX
@Adet int
as
exec(--exec : stirn ifadeleri derlemeye çalışır
' select top ' + @Adet +
' productName,sum( Quantity)--sum toplamdır
as satısAdedi
from [Order Details]
join products
on[order details].ProductID=products.productID
group by productName
order by sum(quantity)DESC '
)

gördüğünüz gibi artık çalışır hale geldi.. EXEC sayesinde. Peki nedir? bu EXEC


EXEC Yapısının iki görevi vardır; execut un kısaltmasıdır..
1 bazı SP'leri çalıştırır.
2 İçine aldığı string ifadeleri birer nesneye dönüştürerek çalıştırırr.
Örnek:
exec('select * from customers')

3 Mayıs 2007 Perşembe

MİCROSOFT 2007 SEMİNERİ. M.NURİ ÇANKAYA

MİCROSOFT 2007
BAHÇEŞEHİR ÜNİVERSİTESİ SEMİNERİ.

Bu gün Microsoft Türkiye'nin geleneksel üniversitelere yönelik tanıtım seminerine gecikmeli olsada katılma frısatı buldum. Seminerlerin bilişim sektöründe önemini bahsemeye hacet yok. Hernekadar reklam havasındada geçsede seminerden çıkartılacak bir çok ders vardı; Sunumda gösterilen örnek projeler insanda çok değişik fikirler uyandırıyo bence. Özelliklede hastahanelerde kullanınlan ve .net le yapılmış üç boyutlu ve grafiğide kendi bünyesinde içermesi çok mütiş proje fikirleri uyandırdı kafamda. Beni heyecanlandıran diğer bir konu ise 2008 ocak ayında visualsitudionun yeni sürümünün çıkacak ollması haberiydi biz daha 3.0 öğrenmeye çalışıyoruz aadamlar 3.5 i çıkaracak. Teknolojiye ayak uydurmak gerçekten gittikçe zorlaşmakta. Benim katıldığım kadarıyla bu seminerde pek teorik bi içerik yoktu ve genel manada ürün tanıtımı diye bilirim.


SEMİNERİN VERİLERİNE VE SUNUMA ULAŞMAK İÇİN http://www.nuricankaya.com/ burayı kullanabilirsinizz.