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

LINQ Query Expressions

Merhaba Arakdaşlar,

Kuzey Rüzgari veri tabanı üzerinde daha önceden mssql alt sorgular kısmında paylaşmış olduğum t-sql sorgularının linq Expressions'ları ile uygulama geliştiriyor olacağız.








   Soru  1) Hangi kategoriden kaç birim Urun var

            var sorgu = from urun in db.Products
                        join kategori in db.Categories on urun.CategoryID equals kategori.CategoryID
                        group urun by kategori.CategoryName into grup
                        select new {
                              grup.Key,
                            UrunAdeti= grup.Sum(x=>x.ProductID)
                        };
            dgvSonuc.DataSource = sorgu.ToList();

    Soru  2) Musterilerin gerçekleştirdiği ilk siparis tarihi

            var sorgu = (from satis in db.Orders
                        join musteri in db.Customers on satis.CustomerID equals musteri.CustomerID
                        group satis by musteri.CompanyName into grup
                        select new
                        {
                            grup.Key,
                            SatisTarihi= grup.Min(x=>x.OrderDate),
                         }).OrderBy(x=>x.SatisTarihi);
            dgvSonuc.DataSource = sorgu.ToList();




 Soru 3)    03.03.1997 yılında yapılan Siparisler gelsin

            DateTime tarih=  Convert.ToDateTime(txtTarih.Text);

              var sorgu = from satis in db.Orders
                          where satis.OrderDate == tarih

                          select satis;

              dgvSonuc.DataSource = sorgu.ToList();
    Soru  4) siparişler Tablosunda  en küçük sipariş tarihi gelsin

            var sorgu = (from satis in db.Orders
                        group satis by satis into grup
                        select new {

                        EnkucukTarih= grup.Min(x=>x.OrderDate)
                        }).Take(1).ToList();

            dgvSonuc.DataSource = sorgu;

    Soru  5) Firmların yaptıkları ilk sipariş tarihleri gelsin

            var sorgu = (from satis in db.Orders
                        join musteri in db.Customers on satis.CustomerID equals musteri.CustomerID
                        group satis by satis.Customer.CompanyName into grup
                        select new
                        {
                           SiparisSahibi= grup.Key,
                          SiparisTarihi= grup.Min(x=>x.OrderDate)
                        }).OrderByDescending(x=>x.SiparisTarihi).ToList();

            dgvSonuc.DataSource = sorgu;

     Soru   6)  Siparis adeti 4 den buyuk sirketler gelsin


            var sorgu = (from satis in db.Orders
                         join musteri in db.Customers on satis.CustomerID equals musteri.CustomerID
                         where musteri.CustomerID==satis.CustomerID
                         group musteri by musteri into grup
                         select new
                         {
                             FirmaAdi = grup.Key.CompanyName,
                             MusteriAdi= grup.Key.CustomerID,
                             SatisAdeti = grup.Count(),


                         }).Where(x => x.SatisAdeti > 4).ToList();
            dgvSonuc.DataSource = sorgu;

            int sayi = sorgu.Count();

    Soru 7)  Ürünler tablosunda ne kadar ürün var

             var sorgu = (from urun in db.Products
                          select urun).Sum(x => x.UnitsInStock);
             //yada
            var sorgu2= db.Products.Sum(x => x.UnitsInStock);
             MessageBox.Show(sorgu2.ToString());

   Soru  8) Hangi üründen Kaç birim Stock var


            var sorgu = from urun in db.Products
                        group urun by urun into grup
                        select new {
                         UrunAdi= grup.Key.ProductName,
                        Adeti=grup.Sum(x=>x.UnitsInStock)
                        };
            dgvSonuc.DataSource = sorgu.ToList();

    Soru   9)  Hangi Kategoriden kaç birim urun var

            var sorgu = from kategori in db.Categories
                        join urun in db.Products on kategori.CategoryID equals urun.CategoryID

                        group urun by urun.Category.CategoryName into grup
                        select new
                        {
                          KategoriAdi= grup.Key,
                          Adet=grup.Sum(x=>x.UnitsInStock)

                        };

            dgvSonuc.DataSource = sorgu.ToList();

      Soru  10 ) Kac farklı ülkeye satış yapılmış

            var sorgu = (from satis in db.Orders
                         select new { satis.ShipCountry }).Distinct();
            dgvSonuc.DataSource = sorgu.ToList();

            yada

            var sorgu2 = from satis in db.Orders
                         group satis by satis.ShipCountry into grup
                         select new { UlkeAdi=grup.Key };

            dgvSonuc.DataSource = sorgu2.ToList();

    Soru  12) hangi Ulkeye Kaçtane Siparis yapıldı

            var sorgu = from satis in db.Orders
                        group satis by satis.ShipCountry into grup
                        select new {
                           UlkeAdi= grup.Key,
                            SiparisAdet= grup.Count()
                        };
            dgvSonuc.DataSource = sorgu.ToList();

     Soru   13 )1996 yılında hangi ülkeye kaçtane sipariş gitmiş


            var sorgu = from satis in db.Orders
                        where satis.OrderDate.Value.Year==1996
                        group satis by satis.ShipCountry into grup
                        select new {
                         UlkeAdi=grup.Key,
                         Adeti= grup.Count(),

                        };

            dgvSonuc.DataSource = sorgu.ToList();

     Soru    14) 1996 yılında hangi ülkeye kaçtane sipariş gitmiş ve siparis sayısı 15 den büyük olan kayıtlar gelsin

            var sorgu = (from satis in db.Orders
                        where satis.OrderDate.Value.Year == 1996
                        group satis by satis.ShipCountry into grup
                        select new
                        {
                            UlkeAdi = grup.Key,
                            Adeti = grup.Count(),


                        });
            dgvSonuc.DataSource = sorgu.ToList();     

         Soru   15 ) Ülkelere giden kargoların ülke bazında ortalama taşıma ücretini  çokdan aza sıralayınız

            var sorgu = (from satis in db.Orders
                        group satis by satis.ShipCountry into grup
                        select new
                        {
                            UlkeAdi=grup.Key,
                           TasimaUcreti= grup.Average(x=>x.Freight)
                        }).OrderByDescending(x=>x.TasimaUcreti);

            dgvSonuc.DataSource = sorgu.ToList();

     Soru    16 ) Çalışanların ünvanlarının sayısı

            var sorgu = (from calisan in db.Employees
                        group calisan by calisan.TitleOfCourtesy into grup
                        select new {
                        Unvan= grup.Key,
                        Adet=grup.Count()
                        }).OrderByDescending(x=>x.Adet);
            dgvSonuc.DataSource = sorgu.ToList();

     Soru 17)  En yüksek ortalama uçuş fiyatı hangi ülkeye gitmiştir

            var sorgu = (from satis in db.Orders
                        group satis by satis.ShipCountry into grup
                        select new {
                        Ulke= grup.Key,
                        OrtalamaUcusFiyat= grup.Average(x=>x.Freight)
                        }).OrderByDescending(x=>x.OrtalamaUcusFiyat).Take(1);

            dgvSonuc.DataSource = sorgu.ToList();

    Soru   18)  Şimdiye kadar satılan ürünlerden nekadar hasılat elde ettik

            var sorgu = from satisdetay in db.Order_Details
                        join urun in db.Products on satisdetay.ProductID equals urun.ProductID
                        group satisdetay by urun.ProductName into grup
                        select new
                        {
                            UrunAdi = grup.Key,
                            AraToplam = grup.Sum(x => (x.Quantity * x.UnitPrice) )
                        };
            dgvSonuc.DataSource = sorgu.ToList();


Şimdi İse Entity Framework'de Crud İşlemlerine(Düzenle Sil Ekle Listele) ve  Lazy Loading, Eager Loading 'e Bakalım  Proje İndir

Video Anlatım 





Uygulama 2 indir


Asp.Net DataList Kullanımı Detaylı Anlatım

Merhaba Arakadaşlar,


Bu bölümde Asp.Net üzerindeki container yapılarından ilk örneğimiz olan DataList kullanımına bkaıyor olacağız.Öncelikle container nedir buna kısaca değinelim.İçersinde birden fazla toolbox elemanı olan (textbox,label,linkbutton vs) ve bunlara direk ıdlerini vererek erişim sağlayamadığımız,containerimiz içinde
belli bir arama işlemine tabi tutularak yakalayabildiğimiz yapılardır.Şimdi söylediklerimizi bir örnekle açıklıyor olalım.Default.aspx sayfamızın source bölümünü aşağıdaki gibi düzenleyelim

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="DataListKullanimi.Default" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:DataList ID="DataList1" runat="server" CellPadding="4" 
            DataKeyField="KategoriID" DataSourceID="SqlDataSource1" 
            RepeatColumns="3" ForeColor="#333333" 
            onitemcommand="DataList1_ItemCommand">
            <AlternatingItemStyle BackColor="White" ForeColor="#284775" />
            <EditItemTemplate>
               Aciklama : <asp:TextBox ID="txtAciklama" runat="server"></asp:TextBox><br />
              KategoriAdi:  <asp:TextBox ID="txtKategoriAdi" runat="server"></asp:TextBox><br />
                <asp:LinkButton ID="lnkGuncelle" runat="server" CommandArgument='<%#Eval("KategoriID") %>' CommandName="update">Guncelle</asp:LinkButton>
                <br />
                <asp:LinkButton ID="lnkVazgec" runat="server" CommandArgument='<%#Eval("KategoriID") %>'  CommandName="cancel">Vazgeç</asp:LinkButton>
            </EditItemTemplate>
            <FooterStyle BackColor="#5D7B9D" ForeColor="White" Font-Bold="True" />
            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <ItemStyle BackColor="#F7F6F3" ForeColor="#333333" />
            <ItemTemplate>
                Aciklama:
                <asp:Label ID="AciklamaLabel" runat="server" Text='<%# Eval("Aciklama") %>' />
                <br />
                KategoriAdi:
                <asp:Label ID="KategoriAdiLabel" runat="server" 
                    Text='<%# Eval("KategoriAdi") %>' />
                <br />
                KategoriID:
                <asp:Label ID="KategoriIDLabel" runat="server" 
                    Text='<%# Eval("KategoriID") %>' />
                <br />
                <asp:LinkButton ID="lnkDuzenle" CommandName="edit" CommandArgument='<%#Eval("KategoriID") %>' runat="server">Düzenle</asp:LinkButton>
                <br />
                <asp:LinkButton ID="lnkSil" CommandName="delete" CommandArgument='<%#Eval("KategoriID") %>'  runat="server">Sil</asp:LinkButton>
            </ItemTemplate>
            <SelectedItemStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
        </asp:DataList>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConflictDetection="CompareAllValues" 
            ConnectionString="<%$ ConnectionStrings:KuzeyRuzgariConnectionString %>" 
            DeleteCommand="DELETE FROM [Kategoriler] WHERE [KategoriID] = @original_KategoriID AND (([Aciklama] = @original_Aciklama) OR ([Aciklama] IS NULL AND @original_Aciklama IS NULL)) AND [KategoriAdi] = @original_KategoriAdi" 
            InsertCommand="INSERT INTO [Kategoriler] ([Aciklama], [KategoriAdi]) VALUES (@Aciklama, @KategoriAdi)" 
            OldValuesParameterFormatString="original_{0}" 
            SelectCommand="SELECT [Aciklama], [KategoriAdi], [KategoriID] FROM [Kategoriler]" 
            UpdateCommand="UPDATE [Kategoriler] SET [Aciklama] = @Aciklama, [KategoriAdi] = @KategoriAdi WHERE [KategoriID] = @original_KategoriID AND (([Aciklama] = @original_Aciklama) OR ([Aciklama] IS NULL AND @original_Aciklama IS NULL)) AND [KategoriAdi] = @original_KategoriAdi">
            <DeleteParameters>
                <asp:Parameter Name="original_KategoriID" Type="Int32" />
                <asp:Parameter Name="original_Aciklama" Type="String" />
                <asp:Parameter Name="original_KategoriAdi" Type="String" />
            </DeleteParameters>
            <InsertParameters>
                <asp:Parameter Name="Aciklama" Type="String" />
                <asp:Parameter Name="KategoriAdi" Type="String" />
            </InsertParameters>
            <UpdateParameters>
                <asp:Parameter Name="Aciklama" Type="String" />
                <asp:Parameter Name="KategoriAdi" Type="String" />
                <asp:Parameter Name="original_KategoriID" Type="Int32" />
                <asp:Parameter Name="original_Aciklama" Type="String" />
                <asp:Parameter Name="original_KategoriAdi" Type="String" />
            </UpdateParameters>
        </asp:SqlDataSource>
    
    </div>
    </form>
</body>
</html> 
========================================================================
Daha Sonrasında  vermiş olduğumuz SqlDataSource 'mız üzerinde nasıl
yaptık buna bakalım
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
namespace DataListKullanimi
{
    public partial class Default : System.Web.UI.Page
    {
        SqlConnection cnn = new SqlConnection("Server=.;Database=KuzeyRuzgari;trusted_connection=true");
        protected void Page_Load(object sender, EventArgs e)
        {
 
        }
        //Propertiesden Verilen CommandNameleri Sil delete Guncelle update,Vazgec cancel 
        //e.item -> Tıklanan Satırı yakalıyor olacak
        // e.CommandName = tıklananın adını verir
        protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            bool sonuc = false;
            if (e.CommandName == "delete")
            {
                sonuc = KategoriSil(Convert.ToInt32(e.CommandArgument));
                if (sonuc)
                {
                    DataList1.DataBind();//Bu Satır Yazılmaşsa hata 
                }
            }
            if (e.CommandName == "edit")
            {
                DataList1.EditItemIndex = e.Item.ItemIndex;// bütün datalist içersinde editlecek satırı bul
                DataList1.DataBind();
            }
            if (e.CommandName == "update")
            {
                TextBox KategoriAdi = (TextBox)e.Item.FindControl("txtKategoriAdi");
                TextBox Aciklama = (TextBox)e.Item.FindControl("txtAciklama");
                sonuc = KategoriGuncelle(Convert.ToInt32(e.CommandArgument),KategoriAdi.Text,Aciklama.Text);
                if (sonuc)
                {
                    DataList1.EditItemIndex = -1;// secileni bırak
                    DataList1.DataBind();
                }
            }
            if (e.CommandName == "cancel")
            {
                DataList1.EditItemIndex = -1;// secileni bırak
                DataList1.DataBind();
            }
        }
 
        private bool KategoriGuncelle(int ID, string kategoriAdi, string aciklama)
        {
            bool sonuc = false;
            SqlCommand cmd = new SqlCommand("UPDATE Kategoriler set KategoriAdi=@KatAdi,Aciklama=@Aciklama where KategoriID=@KatID ", cnn);
            cmd.Parameters.AddWithValue("@KatAdi",kategoriAdi);
            cmd.Parameters.AddWithValue("@Aciklama",aciklama);
            cmd.Parameters.AddWithValue("@KatID",ID);
            try
            {
                if (cnn.State == ConnectionState.Closed)
                    cnn.Open();
                sonuc = Convert.ToBoolean(cmd.ExecuteNonQuery());
            }
            catch (SqlException ex)
            {
                string hata = ex.Message;
            }
            finally
            {
                cnn.Close();
            }
            return sonuc;
        }
 
        private bool KategoriSil(int ID)
        {
            bool sonuc = false;
            SqlCommand cmd = new SqlCommand("Delete From Kategoriler where KategoriID=@KatID", cnn);
            cmd.Parameters.AddWithValue("@KatID", ID);
            try
            {
                if (cnn.State == ConnectionState.Closed)
                {
                    cnn.Open();
                }
                sonuc = Convert.ToBoolean(cmd.ExecuteNonQuery());
            }
            catch (SqlException ex)
            {
                string Hata = ex.Message;
            }
            finally
            {
                cnn.Close();
            }
            return sonuc;
        }
    }
}
Umarım Faydalı olur