C# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
C# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

24 Ağustos 2017 Perşembe

Checkboxlist Çoklu Seçim Yaptırma ve Düzenleme


Çoklu seçim yaptırma ve kaydetme;


   for (int i = 0; i < chkPersonel.Items.Count; i++)
                {
                    if (chkPersonel.Items[i].Selected == true)
                    {
                       int persID = Convert.ToInt32(chkPersonel.Items[i].Value);
                        ArGeKurumYetkili a = new ArGeKurumYetkili();
                        a.arGeBilgilerID = argeBilgiler.arGeBilgilerID;

                        var yetkili=Erdi.EF.KurumYetkililers.Where(x => x.personelID == persID && x.kurumID==argeBilgiler.kurumID).SingleOrDefault();
                        a.kurumYetkililerID = yetkili.kurumYetkililerID;                        Erdi.EF.ArGeKurumYetkilis.Add(a);
                        Erdi.EF.SaveChanges();
                    }
                }

ChecboxList çoklu doldurma(düzenleme ekranları için);



  for (int i = 0; i < id.Count; i++)
            {
                chkPersonel.Items[id[i].KurumYetkililer.Personel.personelID - 1].Selected = true;
            }

Güncelleme(tablodan önce eski veriler siliniyor, tablodan çoklu veri silmek için foreach kullanılır.)



                foreach (var item in Erdi.EF.ArGeKurumYetkilis.Where(x => x.arGeBilgilerID == argeBilgiler.arGeBilgilerID).ToList())
                {
                    Erdi.EF.ArGeKurumYetkilis.Remove(item);
                    Erdi.EF.SaveChanges();
                }


Bu sefer veritabanına güncel verileri ekliyor. Son seçilen checbox bilgilerini yani.



 for (int i = 0; i < chkPersonel.Items.Count; i++)
                {
                    if (chkPersonel.Items[i].Selected == true)
                    {
                        int persID = Convert.ToInt32(chkPersonel.Items[i].Value);
                        ArGeKurumYetkili a = new ArGeKurumYetkili();
                        a.arGeBilgilerID = argeBilgiler.arGeBilgilerID;

                        var yetkili = Erdi.EF.KurumYetkililers.Where(x => x.personelID == persID && x.kurumID == argeBilgiler.kurumID).SingleOrDefault();
                        a.kurumYetkililerID = yetkili.kurumYetkililerID;
                        Erdi.EF.ArGeKurumYetkilis.Add(a);
                        Erdi.EF.SaveChanges();
                    }
                }

Paylaş:

Session ve Cookie Kullanımı (Kullanıcı Girişi)

Session ve cookii'nin ikisi de server tarafından tutulan bilgilerdir. Session daha çok tarayıcı açıkken-oturum boyunca saklanancak veriler için kullanılırken; cookie ise belirtilen süre boyunca oturum kapatılsa bile saklanması istenilen veriler için kullanılır(kullanıcı adı ve şifrenin kendiliğinden gelmesi gibi.-Beni hatırla seçeneği-)

Session ve Cookie kullanımına bir örnek;



Session ve cookiler bir sistemde genelde giriş sayfasında oluşturulur, diğer sayfalarda çağırılır ve çıkış sayfasında sonlandırılırlar.

Giris.aspx.cs -Session/ Cookie Oluşturulması


 protected void btnGiris_Click(object sender, EventArgs e)
        {
              Kullanici kulGiris = Erdi.EF.Kullanicis.FirstOrDefault(x => x.Kulad == txtKulAd.Text&&x.Sifre==txtSifre.Text);
              if (kulGiris != null)
              {
                  HttpCookie cerez = new HttpCookie("cerez");
                  if (cbCookie.Checked)
                  {                     
                      cerez["KulAd"] = txtKulAd.Text;
                      cerez["Sifre"] = txtSifre.Text;
                      cerez["KullaniciId"] = (kulGiris.KullaniciID).ToString();
                      cerez.Expires = DateTime.Now.AddDays(1);
                      Response.Cookies.Add(cerez);
                  }
                  else
                  {
                      cerez["KullaniciId"] = (kulGiris.KullaniciID).ToString();
                      cerez.Expires = DateTime.Now.AddDays(1);
                      Response.Cookies.Add(cerez);                     
                  }
                  Response.Redirect("~/Kullanicilar/BilistProfilim.aspx");
              }
              else
              {
                  Response.Redirect("~/Kullanicilar/BilistGiris.aspx");
              }
         
        }


ya da


HttpCookie cerez = new HttpCookie("cerez");
                  if (cbHatirla.Checked)
                  {                     
                      cerez["KulAd"] = txtKulAd.Text;
                      cerez["Sifre"] = txtSifre.Text;
                      cerez.Expires = DateTime.Now.AddDays(1);
                      Response.Cookies.Add(cerez);

                      Session["yetkiId"] = kulGiris.yetkiID;

                  }
                  else
                  {
                      Session["yetkiId"] = kulGiris.yetkiID;           
                  }



Giriş butonuna tıklandığında beni hatırlanın seçili olup olmamasına göre kontroller sağlanır. Ayrıca giriş sayfasının pageblooadında  cookie çağırılarak kayıtlı cookie bilgileri kontrol edilir.



  protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
                return;
            HttpCookie cerez = Request.Cookies["cerez"];
            if(cerez!=null)
            {
                string Ad = Request.Cookies["cerez"]["kulAd"];
                string sifre = Request.Cookies["cerez"]["Sifre"];
                if (Ad != "" && sifre != "")
                {
                    txtKulAd.Text = Ad;
                    txtSifre.Text = sifre;
                }
            }
            else
            {

            }
        }

Diğer sayfalarda basitçe cookie çağırma işlemi ise aşağıdaki satır gibi yapılır.



int KullaniciId = Convert.ToInt32(Request.Cookies["cerez"]["KullaniciId"]);

Çıkış sayfasında ise sonlanması istenilen cookie bitirilir.


Request.Cookies["Kullanici"]["KullaniciId"] = "";

Paylaş:

4 Ağustos 2017 Cuma

Silinen Resmi Kopyalama(File.Copy-File.Delete)

File.Copy ve File.Delete komutlarının kullanımı. Resim ya da doysaları veritabanından silsek bile kök dizinde kalır. Kök dizindeki dosyaları silmek ve taşımak için bu komutlar kullanılmaktadır.

Örnekte veritabanına eklenen bir resmin kök dizinden silinmesi ve farklı bir klasöre kopyalanması gösterilmektedir.


Webform1.aspx





  <form id="form1" runat="server">
    <div class="auto-style1">
    
        <br />
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <br />
        <br />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="ResmiEkle" />
        <br />
        <br />
        <asp:GridView ID="GridView1" runat="server" BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
            <AlternatingRowStyle BackColor="PaleGoldenrod" />
            <Columns>
                <asp:ButtonField ButtonType="Button" CommandName="Select" HeaderText="seç" ShowHeader="True" Text="Seç" />
            </Columns>
            <FooterStyle BackColor="Tan" />
            <HeaderStyle BackColor="Tan" Font-Bold="True" />
            <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
            <SortedAscendingCellStyle BackColor="#FAFAE7" />
            <SortedAscendingHeaderStyle BackColor="#DAC09E" />
            <SortedDescendingCellStyle BackColor="#E1DB9C" />
            <SortedDescendingHeaderStyle BackColor="#C2A47B" />
        </asp:GridView>
        <br />
        <asp:Button ID="btnSil" runat="server" OnClick="btnSil_Click" Text="Sil ve Taşı" />
    
    </div>
    </form>

Webform1.aspx.cs



 protected void Button1_Click(object sender, EventArgs e)
        {
            resim rs = new resim();
            FileUpload1.SaveAs(Server.MapPath("~/EskiKlasor/" +FileUpload1.FileName));
            rs.ResimUzantı = FileUpload1.FileName;
            Erdi.EF.resims.Add(rs);
            Erdi.EF.SaveChanges();

            GridView1.DataSource = Erdi.EF.resims.ToList();
            
            GridView1.DataBind();
        }

        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int resimId = Convert.ToInt32(GridView1.SelectedRow.Cells[1].Text);
            resim rs = Erdi.EF.resims.Where(x => x.ResimId == resimId).SingleOrDefault();
        }

        protected void btnSil_Click(object sender, EventArgs e)
        {
            int resimId = Convert.ToInt32(GridView1.SelectedRow.Cells[1].Text);
            resim rs = Erdi.EF.resims.Where(x => x.ResimId == resimId).SingleOrDefault();
            Erdi.EF.resims.Remove(rs);
            Erdi.EF.SaveChanges();
            
            File.Copy(Server.MapPath("~/EskiKlasor/" + rs.ResimUzantı), Server.MapPath("~/YeniKlasör/" + rs.ResimUzantı),false); //üzerine yazmayı false yaptık
            File.Delete(Server.MapPath("~/EskiKlasor/" + rs.ResimUzantı));
            GridView1.DataSource = Erdi.EF.resims.ToList();
        }

Sonuç;



Paylaş:

3 Ağustos 2017 Perşembe

MD5 Veri Şifreleme(Asp.net-Entity)

Veri şifrelemenin genel mantığı çeşitli formatlar kullanarak(md5 gibi) verilerimizi veritabanına şifreli bir şekilde kaydetmektir. Aşağıdaki örnekte kullanıcı şifrelerinin md5 kullanılarak veri tabanına şifreli şekilde kaydedilmesi gösterilmektedir.


İlk olarak şifrelemenin gerçekleşmesi için projeye using System.Web.Security; kütüphanenin dahil edilmesi gereklidir.



Webform1.aspx



<form id="form1" runat="server">
    <div class="auto-style1">
    
        <br />
        <br />
        <asp:Label ID="Label1" runat="server" Text="Kullanıcı Adı:"></asp:Label>
        <asp:TextBox ID="txtKulad" runat="server"></asp:TextBox>
        <br />
        <br />
        <asp:Label ID="Label2" runat="server" Text="Şifre:"></asp:Label>
        <asp:TextBox ID="txtSifre" runat="server" TextMode="Password"></asp:TextBox>
        <br />
        <br />
        <asp:Button ID="btnKaydol" runat="server" OnClick="btnKaydol_Click" Text="Kaydol" />
        <br />
        <br />
        <asp:Label ID="Label4" runat="server" Text="Tebrikler Şifren;"></asp:Label>
        <br />
        <br />
        <asp:Label ID="lblSifren" runat="server"></asp:Label>
    
    </div>
    </form>

Webform1.aspx.cs



namespace md5_sifreleme
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            lblSifren.Visible = false;
           
        }

        protected void btnKaydol_Click(object sender, EventArgs e)
        {
            Kullanici kl = new Kullanici();
            kl.kulAd = txtKulad.Text;

            string sifre = FormsAuthentication.HashPasswordForStoringInConfigFile(txtSifre.Text, "MD5");
            kl.Sifre = sifre;
            Erdi.EF.Kullanicis.Add(kl);
            Erdi.EF.SaveChanges();
            lblSifren.Visible = true;
            lblSifren.Text = sifre;
        }
    }
}

Sonuç;



Paylaş:

2 Ağustos 2017 Çarşamba

İç İçe Repeater Kullanımı (Entity Framework ile)

İçiçe repeater bir liste içerisinde ayrı bir alt sıralama yapılacağında kullanılır. Blokların içinde odaların, yemeklerin içinde çorbaların sıralanması gibi. Bir nevi alt kategori kullanımıdır.

Örnek Blok ve bu bloğa bağlı odaların içiçe repater kullanılarak sıralanmasını göstermektedir.

Veritabanı Tabloları;



WebForm.aspx




 <form id="form1" runat="server">
        <div>

            <asp:Repeater ID="DisRepeater" onitemdatabound="DisRepeater_ItemDataBound" runat="server">
                <ItemTemplate>
                   <br /><br /> <%#Eval ("BlokAd")%> <br /><br />
                    <asp:Repeater ID="IcRepeater" runat="server">
                        <ItemTemplate>
                            <%#Eval("OdaAd") %><br />
                        </ItemTemplate>
                    </asp:Repeater>
                </ItemTemplate>

            </asp:Repeater>
        </div>
    </form>


WebForm.aspx.cs



  public partial class WebForm1 : System.Web.UI.Page
    {
        baglan bag = new baglan();
        DenemeContext ct = new DenemeContext();
        protected void Page_Load(object sender, EventArgs e)
        {
            DisRepeater.DataSource = Erdi.EF.Bloks.Select(x => new { x.BlokAd,x.BlokID}).ToList();
            DisRepeater.DataBind();
        }

        protected void DisRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
       int  BlokId= Convert.ToInt32(DataBinder.Eval(e.Item.DataItem, "BlokID"));
            Repeater rp = (Repeater)e.Item.FindControl("IcRepeater");
            rp.DataSource = Erdi.EF.Odas.Where(x => x.BlokId == BlokId).Select(y => new { y.OdaAd }).ToList();
            rp.DataBind();
        }
    }


Sonuç;


Paylaş:

13 Haziran 2017 Salı

Sayı Bulma Oyunu-C#


Olacaklar;
  • -0 ile 100 arası sayılar 
  • -5 tahmin hakkı 
  • - Büyük küçük yönergesi.


namespace SayiBulmaOyunu
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        Random rnd = new Random();// rastgele sayı üretmek için kullanılır.(Global)
        int tahminEdilecekSayi =0;
        int hak = 5;

        private void btnSorgula_Click(object sender, EventArgs e)
        {
            int kullaniciTahmini = Convert.ToInt32(txtSayi.Text);

            if (tahminEdilecekSayi == kullaniciTahmini)
            {
                MessageBox.Show("Tebrikler, Bildiniz...");
            }
            else
            {
                hak--;
                if (hak == 0)
                {
                    MessageBox.Show("Haklarınız bitmiştir...");
                    txtSayi.Visible = false;
                    btnSorgula.Visible = false;
                    btnYeniden.Visible = true;
                }
                else
                {
                    if (tahminEdilecekSayi > kullaniciTahmini)
                        MessageBox.Show("Daha büyük bir sayı giriniz." + hak + " hakkınız kaldı.");
                    else
                        MessageBox.Show("Daha küçük bir sayı giriniz." + hak + " hakkınız kaldı.");
                }
            }

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            tahminEdilecekSayi = rnd.Next(0, 100);
            btnYeniden.Visible = false;
        }

        private void btnYeniden_Click(object sender, EventArgs e)
        {
            tahminEdilecekSayi = rnd.Next(0, 100);// tekrar sayı üretiyor.
            hak = 5;
            txtSayi.Text = " ";
            txtSayi.Visible = true;
            btnSorgula.Visible = true;
            btnYeniden.Visible = false;
        }
    }
}


Paylaş: