Bu Blogda Ara

22.02.2009

DataColumn.AutoIncrement özelliği


c# veri listelemek için bir çok nesne vardır. listbox,grid,repeater,listview vs vs.
eğer listeleme yaparken verinin sıra numarası gibi bir kolon(sütun) eklemek isterseniz yapmanız gereken işlem çok basit.
öncelikle bir datatable nesnesine ihtiyacımız olacak veriyi veri tabanından çekip yükleyecek. ve bir dataColumn lazım oda sıra numarası kolonu olacak.
//otomatik arttırmaya sahip bir kolon inşa ediyoruz.birer birer artsın diyoruz.

DataColumn dcsira = new DataColumn();
dcsira.AutoIncrement = true;
dcsira.ColumnName = "sirano";
dcsira.DataType = typeof(int);
dcsira.AutoIncrementSeed = 1;

//bir tablo oluşturup, kolonlarına kendi kolonumuzu ekliyoruz.
DataTable dt = new DataTable();
dt.Columns.Add(dcsira);

//veritabanına bağlantı ve adapter tanımlıyoruz
SqlConnection baglan = new SqlConnection("Data Source=(local);Initial Catalog=master;User ID=sa;Password=sa");
SqlDataAdapter da = new SqlDataAdapter("SELECT TOP (10) name FROM spt_values", baglan);

//adapterin fill metodu ile tablomuza sorgumuzdan dönecek verileride ekliyoruz.
baglan.Open();
da.Fill(dt);
baglan.Close();

artık dataTable nesnemiz 2 kolonlu(sirano,name). sirano yu biz oluşturduk ki değerleri 0 dan başlayıp veri setimizin sayısı kadar birer artarak gidiyor, name ise veritabanından gelecek. Burada oluşturduğumuz kolonu önce tabloya ekliyoruz, sonra veritanabından geleni ekliyoruz bu sıra önemli. zira önce fill yapıp sonra kendi kolonumuzu eklersek bizim kolonun değerleri boş kalır.

uygulama: bir websayfası üzerinde repeater nesnesi ile verilerin listelenmesi uygulamasını buradan indirebilirsiniz.

21.02.2009

asp.net'te form,panel DefaultButton özelliği

farzedelim bir sayfada üye giriş kısmı (kullanıcı adı,şifre için textbox ve giriş için buton) ve üye kayıt kısmı (bilgiler için textboxlar ve kaydet için buton). bu durumda sayfada 2 tane buton olmuş oluyor. kullanıcı temayüllerine(eğilimlerine) bakacak olursak çoğu kişi giriş yada kaydet butonuna fare ile basmak yerine texboxları doldurup enter tuşuna basıyor. böyle bir durumda enter ile hangi buton aktif olarak çalışacak karmaşası karşımıza çıkıyor.

bunun için şöyle bir çözüm varmış asp,php gibi dillerde. Her ayrı kısmı(üye giriş ve kayıt) ayrı ayrı form tagları içene alıyor ve er formun DefaultButton özelliğine ilgili butonu veriyormuşsun. ama aspn.nette artık masterPage ile sayfalarda tek form olmaya başladı. demek onun yerine başka bişey olmalı diye düşününce Paneller imdada yetişiyor. şöyleki artık herbir bölümü bir panel içine alıyorsun ve panellerin default buton özelliğini ilgili buton yapıyorsun. böylece kullanıcı giriş bölümü paneli içindeki textboxlara veri giyor ve entera basıyorsa giriş butonu, kayıt paneli içindeki textboxlara veri giriyor ve entera basıyorsa kaydet butonu çalışıyor. sorunda çözülmüş oluyor :D

not: sorun ve çözümü için teşekkür ederim Kâzım :). Öğrencilerimden öğrenmeyi herzaman sevmişimdir...

örnek uygulama: (Kâzım derki)

Resimdeki gibi 3 textbox ve 3 buton var. imleç hangi texboxta ise entera bastığımızda onun altındaki butonun eventi çalışsın istiyorum.

çözüm: her grubu bir panel içine alıp panelin default buton özelligine panelin içindeki butonun ID'sini yazmamiz gerekiyormus.Sunun gibi yani :

4.02.2009

Java e-doküman

1- Java Tutorials: http://home.cogeco.ca/~ve3ll/jatutor0.htm
2- Java Lecture Notes: http://www.cafeaulait.org/course/

Veritabanlı Program Geliştirme

Veritabanlı program geliştirecek bir yazılımcı, acemilik döneminde özellikle veritabanı kısmındaki sıkıntıların(veritabanı geliştiriciliği başlı başına bir olay zaten :D) yanında bu veri tabanını kullancak kişilere hazırlayacağı arayüz için bir sürü sou işareti vardır kafasında, yada bu soruları soramıyordur bile daha : ) :

  • arayüzde ki formlarda neler olmalı
  • hangi tasarımda bilgiye ulaşmak, güncellemek, eklemek daha kolay olur
  • yönetici ne tür raporlar ister
  • raporlar nasıl tasarlanmalıdır
gibi daha arttırılabilecek bir sürü soru . Bu acemilik dönemini aşamanın en güzel ve kolay yolu örnek projeler inecelemektir. küçük çaplı büyük çaplı fark etmez demeyelimde başlangıç fark etmez diyelim. (tabi büyük projenin içinde boğulmamak şartı ile :)

peki örnek projeyi nerden bulacak, ya bi yerde işe başlayacak orada görecek, ki firmalar her projesini göstermez yada netten örnek projeler bulacak.

Tam burada bugün imdadıma acsess yetişti. Gülmeyin, accessden ne çıkar demeyin. Northwind adında örnek bir veritabanı ve kullanıcı arayüzü var ( biliyorsunuz accesste kullanıcı arayüzü tasarımıda yapılabiliyor) . inceledim gerçekten hoşuma gitti. öğrencilere birtürlü anlatamadım, ara ara projelerinde şöyle olmalı böyle olmalı dediğim noktaların büyük kısmını bu arayüzde gördüm. bunda sonra ilk dersteki işim öncelikle bu veritabanını ve arayüzü tanıtmak olacak.

peki nasıl ulaşabiliriz bu veritabanına access > yardım/help> örnek veritabanı/ samples databases > northwind.

öncelikle yüklemenizi isteyebilir internetten , evet diyin çıkan soruyo. işlem tamamdır.