Entity Framework etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Entity Framework 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ş:

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ş:

9 Haziran 2017 Cuma

Dosya İndirmek (Asp-Entity)

Dosya indirmek için öncelikle projede dosyaların listeleneceği bir sayfa oluşturuldu. Bu sayfada veritabanındaki tüm dosya isimleri repeatea çekildi ve listelendi.

dosyaIndirme.aspx


         <asp:Panel ID="pnl_urunduzenle" BackColor="#D3E6E6" ForeColor="White" runat="server" >
 <asp:Repeater ID="rpturunListe" runat="server" OnItemCommand="rpturunListe_ItemCommand">                 <HeaderTemplate>
                     <table style="width: 660px">
                         <tr>
                             <td style="width: 294px; align-content:center;padding-left:10px; color:#4E6262;border:1px double #2a595c">Dosya ADI</td>
                             <td style="width:160px;padding-left:10px; color:#4E6262;border:1px double #2a595c">DÜZENLE</td>
                             <td style="padding-left:10px; color:#4E6262;border:1px double #2a595c">SİL</td>
                         </tr>
                     </table>
                 </HeaderTemplate>
                 <ItemTemplate>
                     <table style="width: 654px;">
                         <tr style="border: 1px dotted #2a595c;">
                             <td style="width: 316px;color:#2a595c; margin-right:50px; background-color:#AFC2C2; height: 36px;">
                                 <asp:Literal ID="Literal1" runat="server" Text='<%# Eval("dosya") %>'></asp:Literal>
                             </td>
                              <td style="width: 176px; color:#2a595c; margin-right:50px; background-color:#AFC2C2;height: 36px;">
                                    <asp:LinkButton ID="btnIndir" CommandName="Indir" CommandArgument='<%#Eval("urunID") %>' runat="server">İndir</asp:LinkButton>
                             </td>
                             <td style="width: 176px; color:#2a595c;margin-right:50px;  background-color:#AFC2C2;height: 36px;"> <asp:LinkButton ID="btnSil" CommandName="Sil" CommandArgument='<%#Eval("urunID")%>' runat="server">Sil</asp:LinkButton>
                             
                                 </td>
                         </tr>
                     </table>
                 </ItemTemplate>
             </asp:Repeater>
         
        </asp:Panel>

dosyaIndirme.aspx.cs



public partial class dosyaIndirme : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            rpturunListe.DataSource = Erdi.EF.uruns.Where(x=>x.dosya!=" ").Select(y => new { y.dosya, y.urunID }).ToList();
            rpturunListe.DataBind();
        }

        protected void rpturunListe_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            int urunID = Convert.ToInt32(e.CommandArgument);

            if (e.CommandName == "Sil")
            {
                urun urun = Erdi.EF.uruns.Where(x => x.urunID == urunID ).SingleOrDefault();
                urun.dosya = " ";
                Erdi.EF.SaveChanges();
                Response.Redirect("dosyaIndirme.aspx?sil=ok");
            }

            if (e.CommandName == "Indir")
            {
               
                urun urun = Erdi.EF.uruns.Where(x => x.urunID == urunID ).SingleOrDefault();
                string filename = urun.dosya;
                string path = MapPath("~/dosya/" + filename);
                byte[] bts = System.IO.File.ReadAllBytes(path);
                try
                {
                    Response.AddHeader("Content-Disposition", "attachment; filename=" + urun.dosya);//hangi dosya indirilecek
                    Response.AddHeader("Content-Lenght", urun.dosya.Length.ToString());//dosya uzunluğu bildirilir
                    Response.AddHeader("Content-Type", "Application/octet-stream");
                    Response.BinaryWrite(bts);
                    Response.Flush();
                    Response.Clear();
                }
                catch (Exception)
                {

                    Response.Redirect("dosyaIndirme.aspx");
                }


                Response.Flush();
                Response.Clear();
            }
        }
    }

Burada models yapısı kullanıldığı için nesnelere Erdi.EF classı üzerinden ulaşıyoruz. Dosya klasöründe yer alan pdf'lere ulaşıp indirebilmekteyiz.

Sondaki responce  flush 'ı sunucu, http üstbilgileri gönderildikten sonra üstbilgi ekleyemiyor. hatasının çözümü için ekledim.
Paylaş: