Yaptıklarımı sadece yaptığım zaman anlayabilirsiniz.

11 Mart 2009 Çarşamba

Asp.Net Status Deciding

Selam arkadaşlar bu gün sizlere bu makalemde asp.net ile kendi yazmakda oldugum Databaseuma gore nsıl durum yonetimi yapabileceğimizi dilim döndüğünce anlatmaya çalışacağım nedir durum yönetiminden kastım ? ...Bizim sitemizdede görebileceğiniz gibi forumun en altında kimlerin online-offline olduğu görülmektedir bizde sitemizde kendimizi onlline-offline göstrebiliriz ...
Nasıl mı ? Başlayalım..
Db'mizde kullanicilar tablosunda bir adet "durum" adında nvarchar kolonumuz vardır.Şimdi her giriş çıkış yaptıgımızda bu kolon içerisine "online" veya "offline" stringleri üzerinde oynama yapacağız nasıl ?
void DurumuGuncelle()

{
SqlConnection baglanti = new SqlConnection("Data Source=İP;Initial Catalog=Database;User ID=USER;Password=PASSWORD");
baglanti.Open();
SqlCommand cmd = new SqlCommand("update Tbl_Kullanici set durum='Online' where UyeId=1 ", baglanti);
cmd.ExecuteReader();
}


Geri dönüş tipi olmayan bir method(fonksiyon) yazdık.Bu fonksiyonu giriş butonumuzun içerisinde çagırdık.
  protected void Button1_Click(object sender, EventArgs e)

{
string sifrem = txtSifre.Text;
string password = FormsAuthentication.HashPasswordForStoringInConfigFile(sifrem, "md5");

SqlConnection baglanti = new SqlConnection("Data Source=İP;Initial Catalog=Database;User ID=USER;Password=PASSWORD");
baglanti.Open();
SqlCommand cmd = new SqlCommand("select * from Tbl_Kullanici Where Kullanici=@Kullanici and Sifre=" + "'" + password + "'", baglanti);

cmd.Parameters.Add("@Kullanici",kullanici.Text);
DurumuGuncelle();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
Session["UyeId"] = Convert.ToInt32(dr["UyeId"]);
}
else
{

Response.Write("Kullanıcı adı veya şifre yanlış");
}
}


}
Giriş yaptıgımızdan dolayı artık durum tablomuz'daki değer online olarak değiştirildi...Tabi bunu sitemizin ana sayfasında göstermemiz lazım hemen soldaki toolbox'dan data sekmesinden bir datalist ekliyoruz.
ve datalistimizin altına şu kodları yazıyoruz > Aspx
asp:DataList ID="DataList3" runat="server"

DataSourceID="SqlDataSource3">

durum:
' />


Kullanici:
' />






ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString %>"
SelectCommand="SELECT [durum], [Kullanici] FROM [Tbl_Kullanici]">

Buradaki DatabaseConnection string web.config dosyamız içerisindeki connection stringimizden gelmektedir oda şu şekildedir.





Ve son olarak session öldürdüğümüzde durumumuzu offline yapacak koda kaldı Oda şu şekildedir.
using System;

using System.Collections;
using System.Configuration;
using System.Data;

using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;


public partial class admin_cik : System.Web.UI.Page
{
void DurumuGuncelle()
{
SqlConnection baglanti = new SqlConnection("Data Source=İP;Initial Catalog=Database;User ID=USER;Password=PASSWORD");
baglanti.Open();
SqlCommand cmd = new SqlCommand("update Tbl_Kullanici set durum='Offline' where UyeId=1 ", baglanti);
cmd.ExecuteReader();
}
protected void Page_Load(object sender, EventArgs e)
{
DurumuGuncelle();
Session.Abandon();

Response.Redirect("default.aspx");
Bu sayede ne olmuş oldu ? Sitemize girenlerin durumumuzdan haberleri olmuş oldu.Bunun yerine son admin yazısının yazıldıgı tarihi felan kodları kendinize göre ayarlayıp yapabilirsiniz...
Veya Static bir method ile durumu db'nizde 1 ve 0 olarak tutup bunları bir statik metodunuzda 0 ise offline 1 ise online olarak göstertebilirsiniz ?
Bu son yazdıgım şey için bir video var paylaşayım.
Download<
Ne işe yarar lan bu şimdi makale olsun diye mi yazdın ? diyenler için sessionu kapatmanız için size bir hatırlatıcı olabilir > en azından şahsım için öyle

Herkes bir gün mutsuz olacak ve ben o gün yanlız olmayacağım...

0 yorum:

Yorum Gönder