Access veritabanı kullanarak sayaç kontrolü hazırlama

Arif Ceylan/ Mart 29, 2012/ VS 2010 Asp.net C#-Access Veri Tabanı/ 0 comments

Access veritabanı oluşturup içerisinde sayac adlı bir tablo oluşturuyoruz.(vt.mdb)

Kullanıcıların ip numarası ve girdiği günün tarihi eğer daha önce kaydedilmemişse sayac tablosundaki ilgili alanlara kaydettirilecek. Tüm kullanıcıların ip bilgileri sayfa ilk yüklendiğinde bu tabloya kaydettirilecek ve daha sonra bugün, dün ve toplam girenlerin sayıları alınıp labellere yazdırılacak.

Web sitemizde istediğimiz yerde sayacı gösterebilmek için web user control oluşturalım ve adını sayac.ascx yapalım.(add new item->web user control)

Veritabanımızı da App_Data klasörüne alalım.

Sayac.ascx içerisindeki tasarımımızı hazırlayalım. Yazıların düzenli olması için bir tablo ekliyoruz. Insert ->new table

Tablo içerisine sol tarafa açıklamaları yazıp, sağ bölüme labelleri ekleyelim. Labellerin id özelliğini lbldun,lblbugun,lbltoplam yapalım.

Sayac.ascx in kod bölümüne geçelim. (sağ click->view code)

Veritabanı oledb işlemleri için namespace ekleyelim.

using System.Data.OleDb;

Pageload olayına kodlarımızı yazalım.

string ipno = Request.ServerVariables["REMOTE_ADDR"];

//ip numarasını ipno adlı string değişkene aktarıyoruz

string buguntarih = DateTime.Now.ToShortDateString();

//bugünün tarihini buguntarih adlı string değişkene aktarıyoruz

string duntarih = DateTime.Now.AddDays(-1).ToShortDateString();

//dünün tarihini duntarih adlı string değişkene aktarıyoruz

OleDbConnection c = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DATA Source=" + Server.MapPath("~/App_Data/vt.mdb"));

//oledbconnection sınıfından c nesnesi oluşturduk, providerimizi yazdık. Veritabanı adınız farklıysa değiştirin

c.Open();

//veritabanını açıyoruz.

OleDbCommand com = new OleDbCommand();

com.Connection = c;

OleDbCommand com2 = new OleDbCommand();

com2.Connection = c;

//oledbcommand sınıfından com ve com2 nesnelerini üretiyoruz

com.CommandText = "select * from sayac where ipno='"+ipno+"' and tarih='"+buguntarih+"'";

OleDbDataReader dr;

dr= com.ExecuteReader();

// dr nesnesine sorgu sonucunu aktarıyoruz. Sorguda bugünün tarihi ve kullanıcının ip numarası seçtiriliyor

if (dr.HasRows==false)

//eğer sorgu sonucunda kayıt yoksa kaydetme işlemini yap

{

com2.CommandText = "insert into sayac(ipno,tarih) values(@ip,@tarih)";

com2.Parameters.AddWithValue("@ip", ipno);

com2.Parameters.AddWithValue("@tarih", buguntarih);

com2.ExecuteNonQuery();

}

dr.Dispose();

//dr nesnesini tekrar kullanabilmek için sonlandırmak gerekiyor.

//bugün giriş yapılmamışsa kayıt yapıldı. şimdi verileri labellere yazdıralım.

com.CommandText = "select count(*) as buguntoplam from sayac where tarih='"+buguntarih+"'";

dr = com.ExecuteReader();

dr.Read();

lblbugun.Text = dr["buguntoplam"].ToString();

dr.Dispose();//dryi sonlandır

//bugünkü kayıt sayısı lblbugune yazdırıldı

com.CommandText = "select count(*) as duntoplam from sayac where tarih='"+duntarih+"'";

dr = com.ExecuteReader();

dr.Read();

lbldun.Text = dr["duntoplam"].ToString();

dr.Dispose();

//bugünkü kayıt sayısı lbldune yazdırıldı

com.CommandText = "select count(*) as toplam from sayac";

dr = com.ExecuteReader();

dr.Read();

lbltoplam.Text = dr["toplam"].ToString();

dr.Dispose();

//toplam kayıt sayısı lblbugune yazdırıldı

com.Dispose();

com2.Dispose();

c.Close();

//nesnelerimizi sonlandırıp bağlantıyı kapatıyoruz

İşlemler bitti. Şimdi kontrolümüzü aspx sayfasına yerleştirelim. Bunun için herhangi bir aspx sayfasına solution explorerdan sayac.ascx dosyamızı sürüklememiz yeterlidir.

Sayfamızı çalıştıralım.

 

Kolay gelsin.

Gelen arama terimleri:

  • asp net c# access veritabanı işlemleri
  • asp net ile access veri tabanı bağlantısı
Share this Post

Leave a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*