1)Kullanici veya yöneticinin giris yapmasi için gerekli tasarimi olusturuyoruz.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Duzenle.aspx.cs" Inherits="Duzenle" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
GÖREV BASLIGI: <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
GÖREV IÇERIGI: <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
GÖREV SONUCU: <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox><br />
<asp:Button ID="Button1" runat="server" Text="GÜNCELLE" OnClick="Button1_Click" />
</div>
</form>
</body>
</html>
2) Tasarimdan sonra kullanici adi ve sifrenin dogru olup olmadigini kontrol etmek için Backend kisminda kod ve komutlarla bunu kontrol ediyoruz.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void page_load(object sender, EventArgs e)
{
Session["giris"] = "0";//Sayfa yüklendiginde kullanici bilgileri girilmedgi için oturumun açilmasina izin vermiyoruz ve Session'u False yapiyoruz.
}
protected void Button1_Click(object sender, EventArgs e)
{
//Kullanicinin bilgileriyle giris yapmasi için Veri Tabanima baglanip Kullaniciya ait Kullanici Adi ve Sifre bilgisini denetliyoruz.
SqlConnection baglan = new SqlConnection("server=BILAL\\SQLEXPRESS;database=haberler;integrated security=sspi;");
baglan.Open();
string sorgu = string.Format("select * from Kullanici where Kullanici_Adi='{0}' AND Sifre={1}",TextBox1.Text,TextBox2.Text);
SqlCommand ekle = new SqlCommand(sorgu,baglan);
SqlDataAdapter adp = new SqlDataAdapter(ekle);
DataTable dt = new DataTable();
adp.Fill(dt);
//Kullanici adi ve sifre dogruysa oturum açilacak. Yalniz kullanici sadece kendine ait görevleri görebilecek yönetici ise bütün kullanicilara ait görevleri görebilecek.
if (dt.Rows.Count > 0)
{
Session["giris"] = "1";
Session["kid"] = (int)dt.Rows[0]["ID"];
Response.Redirect("icerik.aspx");
}
else
{
Response.Write("yanlis kullanici adi ve sifre bilgisi");
}
}
}
3)Eger kullanici adi ve sifre dogru girildiyse içerik adli sayfaya yönlendiriliyorsunuz.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="icerik.aspx.cs" Inherits="icerik" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div id="sonuc" runat="server">
<a href="KullaniciEkle.aspx">Yeni Kullanici Eklemek Için Tiklayiniz</a>
<asp:DataList ID="dlIcerik" runat="server" Width="100%">
<ItemTemplate>
<asp:Label Text='<%# Eval("Gorev_Baslik")%>' runat="server" /> <br />
<asp:Label Text='<%# Eval("Gorev_Icerik")%>' runat="server" /> <br />
<asp:Label Text='<%# Eval("Gorev_Tamam")%>' runat="server" />
<asp:LinkButton ID="lnkSil" Text="Sil" runat="server" Visible='<%# (Eval("YoneticiMi").ToString() == "True" && Eval("Gorev_Tamam").ToString() == "")?true:false%>' PostBackUrl='<%# string.Format("icerik.aspx?iid={0}",Eval("Gorev_ID"))%>' OnClick="lnkSil_Click"/>
<asp:LinkButton ID="lnkDuzenle" Text="Düzenle" runat="server" Visible='<%# (Eval("YoneticiMi").ToString() == "True" && Eval("Gorev_Tamam").ToString() == "")?true:false%>' PostBackUrl='<%# string.Format("Duzenle.aspx?iid={0}",Eval("Gorev_ID"))%>'/>
<asp:LinkButton ID="lnkOnayla" Text="+" runat="server" Visible='<%# (Eval("Gorev_Tamam").ToString() == "")?true:false%>' PostBackUrl='<%# string.Format("icerik.aspx?iid={0}",Eval("Gorev_ID"))%>' OnClick="lnkOnayla_Click"/>
<asp:LinkButton ID="lnkOnayYok" Text="-" runat="server" Visible='<%# (Eval("Gorev_Tamam").ToString() == "")?true:false%>' PostBackUrl='<%# string.Format("icerik.aspx?iid={0}",Eval("Gorev_ID"))%>' OnClick="lnkOnayYok_Click"/>
</ItemTemplate>
</asp:DataList>
</div>
</form>
</body>
</html>
4) Içerik sayfasina giren kisinin bütün özellikleri kontrol ediliyor ve giris yapan kisi yöneticiyse kullanici üzerinde su yetkileri; görev atama, görev silme, görev ekleme ve yeni kullanici ekleme gibi yetkileri yönetebilecek. Giren kisi kullaniciysa yalnizca sahip oldugu görevleri görebilecek ve sadece görev tamamlandi veya tamamlanmadi gibi islemler yapabilecek.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class icerik : System.Web.UI.Page
{
SqlConnection baglan = new SqlConnection("server=BILAL\\SQLEXPRESS;database=haberler;integrated security=sspi;");
SqlCommand ekle;
string sorgu;
int iid = 0;
protected void Page_Load(object sender, EventArgs e)
{
int kid = 0;
if (Session["giris"] != "1")
Response.Redirect("Default.aspx");
if (Session["kid"] != null)
kid = Convert.ToInt16(Session["kid"]);
baglan.Open();
ekle = new SqlCommand(string.Format("Select YoneticiMi from Kullanici where ID = {0}", kid), baglan);
string yonetici = ekle.ExecuteScalar().ToString();
if (yonetici == "True")
sorgu = "select * from icerik";
else
sorgu = "select * from icerik where Kullanici_ID=@id";
ekle = new SqlCommand(sorgu, baglan);
ekle.Parameters.Add("id", kid);
SqlDataAdapter adp = new SqlDataAdapter(ekle);
DataTable dt = new DataTable();
adp.Fill(dt);
dt.Columns.Add("YoneticiMi", typeof(string), yonetici);
baglan.Close();
dlIcerik.DataSource = dt;
dlIcerik.DataBind();
}
protected void lnkSil_Click(object sender, EventArgs e)
{
if (Request.QueryString["iid"] != null)
{
iid = int.Parse(Request.QueryString["iid"]);
}
sorgu = "Delete from icerik where Gorev_ID = @id";
ekle = new SqlCommand(sorgu, baglan);
baglan.Open();
ekle.Parameters.AddWithValue("id", iid);
if (ekle.ExecuteNonQuery() > 0)
{
baglan.Close();
Response.Redirect("icerik.aspx");
}
}
protected void lnkOnayla_Click(object sender, EventArgs e)
{
if (Request.QueryString["iid"] != null)
{
iid = int.Parse(Request.QueryString["iid"]);
}
try
{
sorgu = "Update icerik set Gorev_Tamam = 1 where Gorev_ID = @id";
baglan.Open();
ekle = new SqlCommand(sorgu, baglan);
ekle.Parameters.AddWithValue("id", iid);
if (ekle.ExecuteNonQuery() > 0)
{
Response.Redirect("icerik.aspx");
}
}
catch (Exception ex)
{
baglan.Close();
Response.Write(ex.Message);
}
}
protected void lnkOnayYok_Click(object sender, EventArgs e)
{
if (Request.QueryString["iid"] != null)
{
iid = int.Parse(Request.QueryString["iid"]);
}
try
{
sorgu = "Update icerik set Gorev_Tamam = 0 where Gorev_ID = @id";
baglan.Open();
ekle = new SqlCommand(sorgu, baglan);
ekle.Parameters.AddWithValue("id", iid);
if (ekle.ExecuteNonQuery() > 0)
{
baglan.Close();
Response.Redirect("icerik.aspx");
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
5) Yönetici, yeni kullanici olusturmak istediginde içerik sayfasinda bulunan kullanici ekle linkine tikladiginda kullanicin bütün özelliklerini ekleyebilir.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="KullaniciEkle.aspx.cs" Inherits="KullaniciEkle" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<label>Kullanici Adi</label>
<asp:TextBox ID="txtAd" runat="server"></asp:TextBox>
<label>Sifre</label>
<asp:TextBox ID="txtSifre" runat="server"></asp:TextBox>
<label>Yönetici Mi</label>
<asp:CheckBox ID="chckYonetici" runat="server" />
<asp:Button ID="btnKaydet" runat="server" Text="Kaydet" OnClick="btnKaydet_Click" />
</div>
</form>
</body>
</html>
6) Kullanici ekleme görevinin çalismasi için backend kismina su kod ve komutlari eklememiz gerekmektedir;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
//using cn = System.Data.SqlClient;
public partial class KullaniciEkle : System.Web.UI.Page
{
SqlConnection Baglan = new SqlConnection("server=BILAL\\SQLEXPRESS;database=haberler;integrated security=sspi;");
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnKaydet_Click(object sender, EventArgs e)
{
try
{
bool yonetici = false;
//cn.SqlConnection cnn = new SqlConnection();
Baglan.Open();
if (chckYonetici.Checked)
yonetici = true;
string sorgu = "insert into Kullanici (Kullanici_Adi,Sifre,YoneticiMi) values (@kad,@sifre,@yonetici)";
SqlCommand cmd = new SqlCommand(sorgu, Baglan);
cmd.Parameters.AddWithValue("kad", txtAd.Text);
cmd.Parameters.AddWithValue("sifre", txtSifre.Text);
cmd.Parameters.AddWithValue("yonetici", yonetici);
if (cmd.ExecuteNonQuery() > 0)
{
Response.Write("Kullanici Eklendi");
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
}
7)Yönetici yeni kullanici ekledikten sonra ya da var olan bir kullanici üzerinde ki görevleri degistirmek istiyorsa içerik sayfasinda bulunan düzenle linkine tiklamasi yeterli olacaktir.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Duzenle.aspx.cs" Inherits="Duzenle" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
GÖREV BASLIGI: <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
GÖREV IÇERIGI: <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
GÖREV SONUCU: <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox><br />
<asp:Button ID="Button1" runat="server" Text="GÜNCELLE" OnClick="Button1_Click" />
</div>
</form>
</body>
</html>
8) Düzenlenmesini istedigimiz bütün özelliklerin veri tabaninda ve kullanicin giris ekraninda yenilenmesini istiyorsak backend kisminda yapmamiz gereken islemler asagidaki gibidir;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class Duzenle : System.Web.UI.Page
{
SqlConnection baglan = new SqlConnection("server=BILAL\\SQLEXPRESS;database=haberler;integrated security=sspi;");
protected void Page_Load(object sender, EventArgs e)
{
if (Session["giris"] != "1")
Response.Redirect("Default.aspx");
if (!IsPostBack)
{
baglan.Open();
int link = int.Parse(Request.QueryString["iid"]);
string komut = "select * from icerik where Gorev_ID = " + link;
SqlCommand guncelle = new SqlCommand(komut, baglan);
SqlDataReader oku = guncelle.ExecuteReader();
oku.Read();
TextBox1.Text = oku["Gorev_Baslik"].ToString();
TextBox2.Text = oku["Gorev_Icerik"].ToString();
TextBox3.Text = oku["Gorev_Tamam"].ToString();
baglan.Close();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
try
{
baglan.Open();
int iid = int.Parse(Request.QueryString["iid"]);
SqlCommand sorgu = new SqlCommand("Update icerik set Gorev_Baslik=@baslik, Gorev_Icerik=@icerik, Gorev_Tamam=@tamam where Gorev_ID = @id", baglan);
sorgu.Parameters.AddWithValue("baslik", TextBox1.Text);
sorgu.Parameters.AddWithValue("icerik", TextBox2.Text);
sorgu.Parameters.AddWithValue("tamam", TextBox3.Text);
sorgu.Parameters.AddWithValue("id", iid);
if (sorgu.ExecuteNonQuery() > 0)
{
baglan.Close();
Response.Write("Kayit Basariyla Güncellendi");
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
}
EKRAN ÇIKTILARI