Linq to Xml

Hiç yorum yok
Merhaba Arkadaşlar ,

Bu bölümde Linq to Xml'e giriş yapıyor olacağız.Amacımız bir console uygulaması içinde Linq to Xml yapısına bakarak valid bir xml dosyasından verileri okumak olacak birinci bölümümüzde
daha sonrasında joinli tablolarda bu işlemlerin nasıl yapıldığına bakıyor olacağız.

Video Anlatım



1.Bölüm

İlk olarak valid xml 'i oluşturacağımız tablomuza bakalım.

Yandaki tablomuzda da görüldüğü gibi Urunler ismindeki
tablomuzu xml formatına çevirelim.Tabi bu işlemler sırasında valid olmasına dikkat edelim.Yazacağımız t-sql sorgumuz

Select UrunID '@UrunID',KategoriID '@KategoriID',UrunAdi,BirimFiyati from Urunler
 where Sonlandi=1 order by UrunAdi desc
for xml path('Urun'),root('Urunler')

yukardaki gibi olacaktır.Şimdi ise xml dosyamızın çıktısına bakalım.




Yan tarafta xml dosyamızın yapısı yer almaktadır.Şimdi
ise bir console uygulaması başlatalım ve Linq to Xml'e
giriş yapıyor olalım.Kodlara bakılacak olursa bizim seneryomuza uygun olmasada Attribute değerleri içinde
null olma ihtimaline karşı yapılacak cast işlemleri sırasında
hata alınmaması amaçlı datanın null gelme ihtimalide kontrol edilmiş olup.Yorum satırları içerisinde belirtilmişlerdir.Daha önceki video anlatımlarımızda Ado.Net ile ele almış olduğumuz xml yapısını
 Linq to Xml ile nasıl gerçekleştirebileceğimize
 bakalım şimdi.






Uygulama Kodları


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;

namespace LinqtoXml
{
    class Program
    {
       
        static void Main(string[] args)
        {
           // DosyaOku();
           // DosyaOku2();
            DosyaOku3();
            Console.ReadLine();

        }

        private static void DosyaOku3()
        {
            XElement xdoc = XElement.Load("C:\\Users\\Acer\\Desktop\\LinqtoXml\\LinqtoXml\\Product.xml");
            var urunlistesi = from k in xdoc.Elements("Urun")
                              where k.Element("UrunAdi").Value[0] == 'S'
                              select new {
                              ID=k.Attribute("UrunID").Value,
                              UrunAdi = k.Element("UrunAdi").Value,
                               KategoriID=Convert.ToInt32(k.Attribute("KategoriID").Value),
                              //Eger kategoriID null gelme ihtimali varsa
                             //KategoriID = (int?)(String.IsNullOrEmpty(k.Attribute("KategoriID").Value) ? null : (int?)Convert.ToInt32(k.Attribute("KategoriID").Value)),
                              Fiyat = Convert.ToDouble(k.Element("BirimFiyati").Value)
                            
                              };

            foreach (var urun in urunlistesi)
            {
                Console.WriteLine("{0}{1}{2}{3}",urun.ID,urun.UrunAdi,urun.KategoriID,urun.Fiyat.ToString("C2"));
            }
        }

        private static void DosyaOku2()
        {
            XElement xdoc = XElement.Load("C:\\Users\\Acer\\Desktop\\LinqtoXml\\LinqtoXml\\Product.xml");
            var urunlistesi = from k in xdoc.Elements("Urun")
                             where k.Element("UrunAdi").Value[0]=='T'
                              select k;
           // var urunlistesi = xdoc.Elements("Urun").Where(p => p.Element("UrunAdi").Value[0] == 'T').Select(p => p.Element("UrunID").Value);
            foreach (var urun in urunlistesi)
            {
                Console.WriteLine(urun.Element("UrunAdi").Value);
            }
        }

        private static void DosyaOku()
        {
            XDocument xdoc = XDocument.Load("C:\\Users\\Acer\\Desktop\\LinqtoXml\\LinqtoXml\\Product.xml");

            var urunlistesi = from k in xdoc.Element("Urunler").Elements("Urun")
                              select k;
            foreach (var urun in urunlistesi)
            {
                Console.WriteLine(urun.Element("UrunAdi").Value);
            }
        }
    }
}

2.Bölüm

Kullanılan Kategoriler ve Ürünler xml dosyaları içeriği


  Kategoriler.xml t-sql sorgusu

Select KategoriID,KategoriAdi from Kategoriler
 order by KategoriAdi desc
for xml path('Kategori'),root('Kategoriler')


Urunler.xml t-sql sorgusu


Select UrunID,UrunAdi,KategoriID,BirimFiyati from Urunler
 where Sonlandi=1 order by UrunAdi desc
for xml path('Urun'),root('Urunler')








Uygulama Source

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml.Linq;
namespace LingToXmlKullanimi2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            dgvSonuc.DataSource = UrunlistesiKategorili();
        }

        protected object UrunlistesiKategorili()
        {
          XDocument xmlUrunler =XDocument.Load("C:\\Users\\Acer\\Desktop\\LingToXmlKullanimi\\LingToXmlKullanimi2\\Urunler.xml");
          XDocument xmlKategoriler = XDocument.Load("C:\\Users\\Acer\\Desktop\\LingToXmlKullanimi\\LingToXmlKullanimi2\\Kategoriler.xml");

          var urunlistesi = (from urun in xmlUrunler.Element("Urunler").Elements("Urun")
                             join kategori in xmlKategoriler.Element("Kategoriler").Elements("Kategori") on urun.Element("KategoriID").Value equals kategori.Element("KategoriID").Value
                             select new
                             {
                                 ID = urun.Element("UrunID").Value,
                                 UrunAdi=urun.Element("UrunAdi").Value,
                                 KategoriAdi=kategori.Element("KategoriAdi").Value,
                                 Fiyat = urun.Element("BirimFiyati").Value
                             }).ToList();

          return urunlistesi;
                                                                                      
        }
    }
}


Linq To Xml XElement,Attribute,XDocument Kullanımı  

 using System.Xml.Linq namespace altında bulunan linq to xml içeriklerini kullanmamıza olanak sağlayan bu namespace ile XElement,Attribute,XDocument kullanımı ele aldığımız uygulamamıza geçmeden valid bir xml yapısı oluşturmak için öncelikle KuzeyRuzgari veri tabanı üzerinden Products tablomuzu ele alarak valid xml yapımızı oluşturulım

select ProductID '@UrunID',ProductName,UnitPrice,UnitsInStock from Products
 order by ProductName desc
for xml path ('Urun'),root ('Urunler')


Yukarıda belirmiş olduğumuz valid xmlimizi oluşturağımız t-sql sorgumuzdan ilerleyerek elde edeğimiz xml yapısı içeriğinin bir kısmı yandaki

gibidir



 Daha sonra vs 2013 ide içerisinde bir console uygulaması başlatıp oluşan projeye sağ tık new item ile bir adet xml file ekleyelim .Ve İsmini Products olarak verelim Products.xml

Products.xml dosyamızın ilk satırında bizi karşılayan xml beyanının hemen altına mssql tarafında t-sql sorgumuzla oluşturmuş olduğumuz valid xml içeriğimizi xml filemızın içindeki xml beyanının hemen altına yapıştıralım.Ve son olarak uygulamızı çalıştırırken exenin yanından çalışacak olan load methodumuz için yapmamız gereken solution üzerine sağ tıklayıp Open Folder in File Explorer diyerek xml dosyamızın bir kopyasını bin debug klasoru içersine kopyalamak tabi istenirse xml dosyasının propertieslerini bakılarak Copy to Output Directory diyerek her F5 de bir kopyasınıda exenin yanına oluşturabilirsiniz.Artık uygulamamız kodlamaya hazır olduğuna göre başlayalım.

1) ===========================================================
XDocument xdoc = XDocument.Load("Products.xml");

            var urunlistesi = from urun in xdoc.Element("Urunler").Elements("Urun")
                              where urun.Attribute("UrunID").Value == "5"
                              let UnitPrice = urun.Element("UnitPrice")
                              where Convert.ToDouble(UnitPrice.Value) >= 900
                              select urun;


            foreach (var item in urunlistesi)
            {
                Console.WriteLine(item.Element("ProductName").Value);
            }
            Console.ReadLine();

2) ===========================================================
 XElement xdoc = XElement.Load("Products.xml");

            var urunlistesi = from urun in xdoc.Elements("Urun")
                              where urun.Element("ProductName").Value[0] == 'T'
                              select urun;


     foreach (var item in urunlistesi)
            {
                Console.WriteLine(item.Element("ProductName").Value);
            }
            Console.ReadLine();

3)  ===========================================================
 var urunlistesi = from urun in xdoc.Elements("Urun")
                              where urun.Element("ProductName").Value[0] == 'T'
                              select new
                              {
                                  UrunID = urun.Attribute("UrunID").Value,
                                  UrunAdi = urun.Element("ProductName").Value,
                                  UrunStokSayisi = urun.Element("UnitsInStock").Value,
                                  UrunFiyati = urun.Element("UnitPrice").Value
                              };

            foreach (var item in urunlistesi)
            {
                Console.WriteLine("{0},{1},{2},{3}", "UrunID " + item.UrunID, "UrunAdi " + item.UrunAdi, "Stok Sayisi " + item.UrunStokSayisi, "Fiyati " + item.UrunFiyati);
            }


  ===========================================================
Linq to Xml Crud İşlemleri

       1)     Xml dosyasına Urun Ekleme 
 
            string path = "C:\\Users\\Sinan\\Desktop\\XmlGiris\\XmlGiris\\Products.xml";
            XDocument xdoc = XDocument.Load(path);

            XElement urun = new XElement("Urun",
                new XAttribute("UrunID","98"),
                new XElement ("ProductName","Denemexml"),
                new XElement ("UnitPrice","999"),
                new XElement("UnitsInStock","1000")
                );
            xdoc.Root.Add(urun);
            xdoc.Save(path);

      2) Xml dosyasından urun silme
            string path = "C:\\Users\\Sinan\\Desktop\\XmlGiris\\XmlGiris\\Products.xml";
            XDocument xdoc = XDocument.Load(path);

            var silinecekurun = xdoc.Descendants("Urun").Single(x => x.Attribute("UrunID").Value.Equals("98"));
            silinecekurun.Remove();
            xdoc.Save(path);
   
   3)Xml dosyasında urun güncelleme

            string path = "C:\\Users\\Sinan\\Desktop\\XmlGiris\\XmlGiris\\Products.xml";
            XDocument xdoc = XDocument.Load(path);

            var guncellenecekurun = xdoc.Descendants("Urun").Single(x => x.Attribute("UrunID").Value.Equals("17"));
            guncellenecekurun.SetElementValue("UnitsInStock", "10");
            guncellenecekurun.SetElementValue("UnitPrice", 90);
            xdoc.Save(path);
===========================================================
 Not :3 numaralı uygulamada xml içeriğimizde null içerikler olmadığıdan dolayı null kavramı ele alınmamıştır.Bu noktada convert işlemleri yapılırken eğer elinizde null degerler varsa turner if ile gelen dataların degerlerinin null olma durumlarıda kontrol edilmedilir(Video Anlatımta değinilmiştir).Gene Unutulmamalıdır ki Value lar string deger döndürmekte ve gelen datanın tipine göre işlemler yapılmak istenildiğinde büyüktür küçüktür vs gibi yazacağınız kritere göre convert edilmedilir.

Umarım faydalı olur






















Hiç yorum yok :

Yorum Gönder

Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.

Linq to Sql Temel Method Kullanımı ve Linq to Sql Giriş

Hiç yorum yok
Merhaba Arkadaşlar

Bu bölümde linq to sql 'e giriş aşaması taşıyan bu uygulamamız üzerinde kullanılan belli başlı methodların kullanımına gerek linq sorguları gereksede lambda kullanımı olarak ele alıyor olacağız.
Aşağıda proje içindeki kodlama işlemleri ve video anlatım bulunmakta.Umarım faydalı olur

1.Bölüm 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Lingtosql
{
    class Program
    {
        static void Main(string[] args)
        {
            //Hepsi();
            //VeVeyaKullanimi();
            //Ortalama();
            //IcindeVarmi();
            //FarkliKayit();
            VarsayilanDeger();
            Console.ReadLine();
        }

        private static void VarsayilanDeger()
        {
            int[] sayilar = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            var sorgu = sayilar.Where(x => x > 11).DefaultIfEmpty(-1);
            foreach (var item in sorgu)
            {
                Console.WriteLine(item);
            }

        }

        private static void FarkliKayit()
        {
            int[] sayilar = { 1, 2, 3,5,4,5,9, 4, 5, 6, 7, 8, 9, 10 };
            var sorgu = sayilar.Distinct();
            foreach (var sayi in sorgu)
            {
                Console.WriteLine(sayi);
            }
        }

        private static void IcindeVarmi()
        {
            string[] sehirler = { "Ankara", "Istanbul", "Konya" };
            var sehir = sehirler.Contains("Afyon");
            Console.WriteLine(sehir);
        }

        private static void Ortalama()
        {
            int[] sayilar = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            //var sorgu = sayilar.Average();
            var sorgu = sayilar.Where(x => x <= 9).Average();
            Console.WriteLine(sorgu);
        }

        private static void VeVeyaKullanimi()
        {
            int[] sayilar = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            var sorgu = from k in sayilar
                        //where k >= 3 && k<=9
                        where k==3 || k==9
                        select k;
            foreach (var sayi in sorgu)
            {
                Console.WriteLine(sayi);
            }
        }

        private static void Hepsi()
        {
            int[] sayilar = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            var sorgu = sayilar.All(x=> x<=10);
            Console.WriteLine(sorgu);
        }
    }
}

2.Bölüm

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace LingSorgulari
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        KuzeyRuzgariDataContext db = new KuzeyRuzgariDataContext();
        private void Form1_Load(object sender, EventArgs e)
        {
            #region OderByKullanımı
            //order by Ling sorgusu
            //var sorgu = from k in db.Kategorilers
            //            orderby k.KategoriID ascending
            //            select new {
            //            k.KategoriID,
            //            k.KategoriAdi
            //            };
            //Lambda Kullanımı
            //var sorgu = db.Kategorilers.OrderBy(k => k.KategoriID).Select(m => new { m.KategoriID, m.KategoriAdi });
            //dgvSonuc.DataSource = sorgu;
            #endregion

            #region Like Kullanımı StartWith ve EndsWith
            //Like ling sorgusu
            //var sorgu = from k in db.Kategorilers
            //            where k.KategoriAdi.StartsWith("Con")
            //            select new {
            //            k.KategoriID,
            //            k.KategoriAdi
            //            };

            // Lambda
            //var sorgu = db.Kategorilers.Where(k => k.KategoriAdi.StartsWith("Con")).OrderBy(k => k.KategoriID).Select(p => new { p.KategoriID, p.KategoriAdi });
            //dgvSonuc.DataSource = sorgu;

            //var sorgu = from k in db.Kategorilers
            //            where k.KategoriAdi.EndsWith("ood")
            //            orderby k.KategoriID
            //            select new {k.KategoriAdi,k.KategoriID };

            //lambda EndsWith Kullanımı
            //var sorgu = db.Kategorilers.Where(k => k.KategoriAdi.EndsWith("ood")).OrderBy(k => k.KategoriID).Select(p => new { p.KategoriID, p.KategoriAdi });
            //dgvSonuc.DataSource = sorgu;
            #endregion

            #region Take Kullanımı(Top)
            //// Take Ling sorgusu
            ////var sorgu = (from k in db.Personellers
            ////            select new {
            ////            k.Sehir,
            ////            k.Adi
            ////            }).Take(3);
            ////Lambda Take Kullanımı
            //var sorgu = db.Personellers.Select(k => new { k.Adi, k.Sehir }).Take(3);
            //dgvSonuc.DataSource = sorgu;
            #endregion

            #region SkipKullanımı()
            //Skip () Kullanımı Ling
            //var sorgu = (from k in db.Personellers
            //            select new {k.Adi,k.Sehir}).Skip(3);
            //Lambda
            //var sorgu = db.Personellers.Select(k => new { k.Adi, k.Sehir }).Skip(3);
            //dgvSonuc.DataSource = sorgu;
            #endregion

            #region Distinct Kullanımı
           
            //Ling Sorgusu
            ////var sorgu = (from k in db.Personellers
            ////             select new { k.Adi, k.Sehir }).Distinct();
            ////dgvSonuc.DataSource = sorgu;

            ////Lambda Distinct Kullanımı
            //var sorgu = db.Personellers.Select(k => new {k.Adi,k.Sehir }).Distinct();
            //dgvSonuc.DataSource = sorgu;
            #endregion

            var sorgu = db.Personellers.Select(k => new { k.Adi, k.Sehir }).Skip(1).Take(5);
            dgvSonuc.DataSource = sorgu;
        }
    }
}

Video Anlatım 





Bol Kodlu Günler Dilerim





Hiç yorum yok :

Yorum Gönder

Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.

Yardım Destek İsteme Ve Blog Hakkında

Hiç yorum yok
Merhaba Arkadaşlar,

Yaklaşık 3 senedir blog üzerinden paylaşımlarda bulunmaktayım.Her ne kadar belli dönemlerde işlerimde dolayı kapalı kalmış olsada.Amacım bilginin paylaşıldıkça güzel olduğunu ve bir anlamı ancak bu şekilde olabildiğini sağlamak.Bunları yaparkende hiçbir maddi yada manevi beklenti içinde değilim.

Bu noktada ise paylaşımlar ve yardım isteme noktasında amacım hazır olarak herşeyi vermek değil.Maddi anlam ifade etmediğinden blog üzerinden geniş çaplı uygulamalar bulabilmenize rağmen belli bölümleri bilerek ve isteyerek eksik bırakılmıştır.Bunun sebebi bu işle uğraşan arkadaşa belli oranda sadece yol gösterebilmek ve devamındaki kodlama işlemlerini projeleri uygulamaları takip eden arkadaş yada arkadaşların yapabilmesini sağlamaktır.

Bu aşamada gerek sosyal platformlardan gereksede mail ortamında gelen sorularınıza bildiğim tüm noktalarda yardım etmekteyim.Fakat son zamanlarda gelen sorularda bu projede şuraları yapamadım yada falanca ödevim var iki dakka teamviewer ile bağlanığ yaparmısın gibi istek ve taleplere sadece nasıl yapılabileceğini anlatarak cevap vermekteyim.Buda bazı arkadaşların tepkilerine yol açmakta.

Bu blogun amacı hazır balık vermek değil balık tutmasını öğretebilmektir.Bu işe ilk başladığım zamanlardan bu yana meslekle alakalı sorunları bende sizler gibi yaşadım.Fakat kimseye bağlanda bana kod yaz demedim.Sebebi ise hep aklımda bu işi yapan gerek hocalarım gerekse bu meslekte yıllarını vermiş deneyimli arkadaşlar olsun.Herkesin kendi işinin ve uğraşının olmasıdır.

Ben sorularımı sorarken bu işlemleri yaparken nasıl bir yol yada mantık kullanmalıyım tarzında sorarak bu aşamalara geldim.Araştırıp geliştirmek ve sonunda elde ettiğiniz şeyin insanların faydasına olabilecek bir seviyeye geldiğini hissettiğiniz anda kodlama işlemleri ve alınan ürün
anlam katmakta.

Benim gibi sektörde toplamda 3 senesi geçen ve sürekli gelişmeyi araştırmayı edinen siz değerli arkadaşlarıma önerilerimi yukarda sıraladım.Tabi bu şu demek değildir.Ben herşeyi biliyorum yada yaparım.Bunun anlamı yapılabilirliği kanıtlanmış bir şey varsa buda kullanılıyorsa bunu yazan kişiden hiç bir eksiğinizin olmamasıdır.Sadece daha fazla araştırma yapmak gerektiğidir.

Sözlerimi noktalarken bol kodlu günlerle kalın diyorum.

Saygılarımla Sinan Arslan

Hiç yorum yok :

Yorum Gönder

Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.

C# Stok Takip Otomasyonu

4 yorum
Merhaba Arkadaşlar ,

Bu bölümde Devexpress üzerinde c# ortamında Devexpress componentlerini kullanarak hazırlamış olduğum asıl itibari ile Devexpress noktasında kendimi geliştirmek için yazdığım Stok takip projesini tamamlandığında sizlerle paylaşıyor olacağım .

   Bu noktada sizlerden gelebilecek önerileriniz yada şunu da yapmamız güzel olurdu diyebileceğiniz noktalar olursa bu makalenin altına yorum ekleyerek projenin ilerleyişine katkıda bulunabilirsiniz.

Her nekadar projesi video anlatım serisi olarak yayınlamıyor olsamda proje acık kaynak kodlu ve herzamanki gibi belli bir mimari yapı içersinden ilerlediğimden dolayı paylaşım esnasında kodlama ile source yer alan bölümlerin anlaşılır bir şekildedir.Bazı bölümlerine ait proje ekranları

Proje Mimari Tasarım N-Tier Katmanlı Mimari




 Zamanım olursa projeyi bitirip paylaşıyor olacağım.

















Bir yazılım evi için istenen örnek uygulamasının servisden dönen degerine bakalım şimdide.(resim 3)
Örnek Uygulama İndir
















4 yorum :

Yorum Gönder

Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.

Servis Yönelimli Mimari (Service Oriented Architecture-SOA) Uygulama ve Video Anlatım Serisi

Hiç yorum yok
Merhaba Arkadaşlar ,

Bu bölümde xml webserviceler ,windows servisleri ve wcf servisleri ile örnek uygulamalar yapıp,ihtiyaclarımız doğrultusunda güvenliğimiz için gerekli Authentication yöntemlerimize bakıyor olacağız .Daha sonrasında uygulamalarımız içinde yazmış olduğumuz servisdeki metodlarımızın
asenkron çalışmasına değinip yazmış olduğum örnek uygulamayı indirebileceğiniz bir anlatım gerçekleştiriyor olacağız.

Umarım Faydalı olur .


 WCF Giriş Video 1



Uygulama Indir





WCF Uygulama Serisi Bolum 1 Video Anlatım




WCF Uygulama Serisi Bolum 2 Video Anlatım





 



WCF Uygulama Serisi Bolum 1 Uygulama Indir

Wcf Uygulama Serisi Bolum 2 Uygulama Indir


 
 















Hiç yorum yok :

Yorum Gönder

Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.

Yararlı Class Ve Metodlar

Hiç yorum yok
Merhaba Arkadaşlar ,

Bu bölümde projelerimiz esnasında bize lazım olacak belli başlı classlar ve metodları paylaşıyor olacağım .Tabi bunları projenize eklediğinizde namespace bölümüne dikkat ederek kullanmanızı tavsiye ediyor olacağım.

Mail Gönderme İşlemleri

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net.Mail;
using System.Net;

namespace DuffDunnShoesStore.ToolsWorkers
{
    public class Mail
    {
        public string Konu { get; set; }
        public string Mesaj { get; set; }
        public int SmtpPort { get; set; }
        public string Host { get; set; }
        public string Kime { get; set; }
        public string Kimden { get; set; }
        public NetworkCredential Credential { get; set; }
        public string sifre = "sifreniz";// gönderen kişinin mail sifresi
        public Mail(string Mailkonusu, string MailMesaji, string KimeGonderilecek)
        {
            this.Konu = Mailkonusu;
            this.Kime = KimeGonderilecek;
            this.Host = "smtp.gmail.com";//gmail üzerinden
            this.SmtpPort = 587;
            this.Mesaj = MailMesaji;
            this.Credential = new NetworkCredential("mail adresiniz", sifre);
            this.Kimden = "mail adresiniz";
        }//Constuctor ile gelen verileri verdiğimiz ayarlar doğrultusunda kullanacaz


        public static void Gonder(Mail m)
        {
            MailMessage e_posta = new MailMessage();
            e_posta.From = new MailAddress(m.Kimden);
            e_posta.To.Add(m.Kime);
            e_posta.IsBodyHtml = true;
            e_posta.Subject = m.Konu;
            e_posta.Body = m.Mesaj;
            SmtpClient smtp = new SmtpClient();
            smtp.EnableSsl = true;
            smtp.Credentials = m.Credential;
            smtp.Port = m.SmtpPort;
            smtp.Host = m.Host;
            smtp.Send(e_posta);
        }// Maili Gönderen Metodmuz
    }
}

Türkçe Karakter Sorunu

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace DuffDunnShoesStore.ToolsWorkers
{
    public static class Turkce
    {
        public static string TurkCE(string deger)
        {

            try
            {

                deger = deger.Replace("Ü", "U");
                deger = deger.Replace("Ş", "S");

                deger = deger.Replace("Ğ", "G");
                deger = deger.Replace("Ç", "C");

                deger = deger.Replace("İ", "I");
                deger = deger.Replace("Ö", "O");

                deger = deger.Replace("ü", "u");
                deger = deger.Replace("ş", "s");

                deger = deger.Replace("ğ", "g");
                deger = deger.Replace("ç", "c");

                deger = deger.Replace("ı", "i");
                deger = deger.Replace("ö", "o");
                return deger;

            }
            catch
            {
                return deger;
            }

        }
    }
}

İnjection İçin Basit bir Metod

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace DuffDunnShoesStore.ToolsWorkers
{
    public static class Kontrol
    {
        public static string Temizle(string gelenKelime)
        {
            string gelen = gelenKelime.Replace("'", "");
            gelen = gelenKelime.Replace("'", "");
            gelen = gelenKelime.Replace("!", "");
            gelen = gelenKelime.Replace("?", "");
            gelen = gelenKelime.Replace("/", "");
            gelen = gelenKelime.Replace(",", "");
            gelen = gelenKelime.Replace(";", "");
            gelen = gelenKelime.Replace("%", "");
            return gelen;

        }
    }
}

MD5 Şifreleme İşlemleri

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Security.Cryptography;
using System.Text;

namespace DuffDunnShoesStore.DalWorkers
{
    public class Araclar
    {
        public static string MD5yapUTF8(string text)
        {
            MD5 md5 = new MD5CryptoServiceProvider();
            //md5 nesnesi türettik.
            byte[] bsifre = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(text));
            //texti(girilen parolayı) Encoding.UTF8 in GetBytes() methodu ile bir byte dizisine çevirdik.
            StringBuilder sb = new StringBuilder();
            // string builder sınıfından bir nesne türetip , byte dizimizdeki değerleri
            // Append methodu yardımıyla bir string ifadeye çevirdik.
            foreach (var by in bsifre)
            {
                //x2 burda string'e çevirirken vermesini istediğimiz format.
                //çıktısında göreceğimiz gibi sayılar ve harflerden oluşucaktır.
                sb.Append(by.ToString("x2").ToLower());
            }
            //oluşturduğumuz string ifadeyi geri döndürdük.
            return sb.ToString();
        }

        public static bool EslestiMi(string girilen, string Sifreli)
        {
            //Sifreli daha önce sifrelemiş olduğumuz parola. Burda veritabanı kullanacak olursanız
            //Sifreli değeri veritabanından çekeceğiniz kullanıcı parolası olacak.
            string girileniSifrele = MD5yapUTF8(girilen);
            // Kullanıcının giriş yapmak için girdiği parolayı biraz önce yazdığımız method ile
            // Hash haline getirdik.
            StringComparer sc = StringComparer.OrdinalIgnoreCase;
            // StringComparer adından da anlaşıldığı gibi string karşılaştırması yapan bir sınıftır.
            // OrdinalIgnoreCase ile eşitse 0 değilse 1 döndürsün dedik .
            //sc.Compare() methodu ile iki ifadeyi karşılaştırdık.
            if (0 == sc.Compare(girileniSifrele, Sifreli))
            { //ifadeler uyuşuyorsa burası
                return true;
            }
            else
            {//ifadeler uyuşmuyorsa burası
                return false;
            }
        }
    }
}

Resim İşlemleri Classı 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Drawing;

namespace StokTakipUygulamasi.Fonksiyonlar
{
    class Resimleme
    {
        public Byte[] ResimYukleme(System.Drawing.Image Resim)
        {
            //jpeg formatındaki veriler database bytearray olarak gönderiliyor
            using (MemoryStream ms= new MemoryStream())
            {
                Resim.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                return ms.ToArray();
            }
        }

        public Image ResimGetirme(byte[] GelenByteArray)
        {//gelen bytearray alınıp resim kutusunda göstermek
            using (MemoryStream ms = new MemoryStream(GelenByteArray))
            {
                Image Resim = Image.FromStream(ms);
                return Resim;
            }
        }
    }
}

Resim Yukleme ve Kontrol İşlemleri

   //Sayfada üst bölümde tanımlanan değişkenler
   bool ResimSecilimi = false;
   OpenFileDialog Dosya = new OpenFileDialog();//resim işlemi için

   void ResimSec()
        {//Formatı jpeg olan Resimleri Göstermesi için
            Dosya.Filter = "Jpg(*.jpg)|*.jpg|Jpeg(*.jpeg)|*.jpeg";
            if (Dosya.ShowDialog() == DialogResult.OK)
            {
                pcResimKutusu.ImageLocation = Dosya.FileName;
                ResimSecilimi = true;
            }
        }

        private void btnResimSec_Click(object sender, EventArgs e)
        {
            //Eğer Stoklarda kayıt yoksa ilk aşamada hata verecektir .Sebebi üretmiş olduğumuz ıd yi first ile almamız
            ResimSec();
        }

Girilen Karaktere Soldan Değer Atanıp Otomatik Oluşturulması

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace StokTakipUygulamasi.Fonksiyonlar
{
    class Numara
    {
        Mesajlar msj = new Mesajlar();
        public string StokKodNumarasiUret()
        {
            using (DataBaseDataContext dB = new DataBaseDataContext())
            {
                try
                {
                    // kaydın numarasını al int cevir bir artır soldan 7 sıfır ekle
                    int numara = int.Parse((from k in dB.tbl_Stoklars orderby k.ID descending select k).FirstOrDefault().StokKodu);
                    numara++;
                    string num = numara.ToString().PadLeft(7, '0');// Soldan 7 sıfır ekle
                    return num;
                }
                catch (Exception ex)
                {
                    msj.Hata(ex);
                    return "00000001";
                }
            }
        }
    }
}

Ana Form Kontrol class'ı

 private void FormAcikmi(Form AcilacakForm)
        {
            bool acikmi = false;
            for (int i = 0; i < this.MdiChildren.Length; i++)
            {
                if (AcilacakForm.Name == MdiChildren[i].Name)
                {
                    this.MdiChildren[i].Focus();
                    acikmi = true;
                }
            }
            if (acikmi == false)
            {
                AcilacakForm.MdiParent = this;
                AcilacakForm.Show();
            }
            else
            {
                AcilacakForm.Dispose();
            }
        }

Hiç yorum yok :

Yorum Gönder

Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.

MSSQL String Foksiyonlar

Hiç yorum yok
Merhaba Arkadaşlar ,

Bu bölümde MSSQL tarafındaki string foksiyonlarının kullanım şekillerine bakıyor olacağız.



Verilen string ifadenin ASCII kodunu verir.
Kullanım Şekli - ASCII(String Değer)
Örnek: SELECT ASCII ('A')

CHAR()
Verilen sayısal ASCII kodunu karaktere çevirir.
Kullanım Şekli - CHAR(Integer Değer)
Örnek: SELECT CHAR(65)

CHARINDEX()
Cümle içinde aranan kelimenin kaçıncı harften başladığının indexini verir.
Kullanım Şekli – CHARINDEX(Aranacak kelime, cümle)
Örnek: SELECT CHARINDEX('Sinan', 'Merhaba Dünya')

DIFFERENCE()
İki String değer arasındaki farkın kaçıncı karakterden başladığını gösterir.
Kullanım Şekli - DIFFERENCE(stringdeger1, stringdeger2)
Örnek: SELECT DIFFERENCE('Sinan', 'Snn')

LEFT()
String değerin soldan kaç karakter alacağını söyler.
Kullanım Şekli – LEFT(string ifade, int kaç değer alacağı)
Örnek: SELECT LEFT('abcdefg', '2')

LEN()
String ifadenin uzunluk değerini Integer olarak verir.
Kullanım Şekli – LEN(String ifade)
Örnek: LEN(Sinan)

LOWER()
String ifadelerim tüm harflerini küçüğe çevirir.
Kullanım Şekli - LOWER(String ifade)
Örnek: SELECT LOWER('Sinan')

LTRIM()
String ifadede soldaki boşlukları siler ve düzenler.
Kullanım Şekli -LTRIM(String ifade)
Örnek: SELECT LTRIM('         Sinan')

NCHAR()
Çok büyük değerdeki ASCII karekter değerlerini verir.
Kullanım Şekli – NCHAR(int değer)
Örnek: SELECT NCHAR(985)

PATINDEX()
Cümlenin içindeki aranılan harfin kaçıncı indexten başladığını gösterir.
Kullanım Şekli – PATINDEX(aranılacak string, cümle)
Örnek: SELECT PATINDEX ('in' , 'Sinan Arslan')

QUOTENAME()
Cümle içinde özel karakterleri ayırmak için kullanılır.
Kullanım Şekli – QUOTENAME(string ifade)
Örnek: SELECT QUOTENAME('abc[]def')

REPLACE()
Cümle içinde değişecek kelimelerin yerini değiştirir.
Kullanım Şekli – REPLACE(cümle, değişecek cümle, yerine yazılacak cümle)
Örnek: SELECT REPLACE('MahmutGünveren', 'veren', 'alan');

REPLICATE()
Verilen String ifadenin kaç kere tekrar edileceğini gösterir.
Kullanım Şekli – REPLICATE(string değer, int tekrar değeri)
Örnek: SELECT REPLICATE('Sinan     ', 4)

REVERSE()
Verilen kelime ya da cümleyi tersten yazar.
Kullanım Şekli – REVERSE(string cümle)
Örnek: SELECT REVERSE('Sinan Arslan')

RIGHT()
Cümle içinde sağdan kaç harf alacağını gösterir.
Kullanım Şekli – RIGHT(string cümle, int değer)
Örnek: SELECT RIGHT('Sinan Arslan', 5)

RTRIM()
Cümle içinde sağdaki boşlukları siler.
Kullanım Şekli - RTRIM(string ifade)
Örnek: SELECT RTRIM('Sinan Arslan                   ')

SOUNDEX()
String değeri Alfanümerik olarak dönüştürür.
Kullanım Şekli – SOUNDEX(String değer)
Örnek: SELECT SOUNDEX ('Sinan')

SPACE()
Cümle içerisinde ne kadar boşluk bırakılacağını gösterir.
Kullanım Şekli – SPACE(int değer)
Örnek: SELECT 'Sinan' + SPACE (2) + 'Arslan'

STR()
Decimal ifadeleri kaçıncı karaktere yuvarlayacağını gösterir.
Kullanım Şekli – STR(Decimal değer, kaç değer olduğu, virgülden sonra kaç değer yuvarlayacağı)
Örnek: SELECT STR(123.456, 6 , 2)

STUFF()
Cümlenin içine kelime eklemek için kullanılır.
Kullanım Şekli – STUFF(String cümle, başlangıç değer, silinecek değer, eklenecek string)
Örnek: SELECT STUFF ('Sinan Arslan', 3, 4, 'in yazılım')

SUBSTRING()
Cümle içerisinden parça almak için kullanılır.
Kullanım Şekli – SUBSTRING(cümle, başlangıç, int, alınacak değer int)
Örnek: SELECT SUBSTRING ('SinanArslan', 2, 3)

UNICODE()
ASCII kodunu verir.
Kullanım Şekli - UNICODE(Char değer)
Örnek: SELECT UNICODE ('A')

UPPER()
Verilen kelime veya cümleyi büyük harfe çevirir.
Kullanıum Şekli – UPPER(String değer)
Örnek: SELECT UPPER('sinanarslan')

Umarım faydalı olur.Daha fazlası için  Tıklayınız

Hiç yorum yok :

Yorum Gönder

Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.

Entity Framework

1 yorum
Merhaba Arkadaşlar ,

Bu bölümde Entity Freamwork 'e bir giriş yapıyor olacağız.Yalnız daha öncesinde şunu belirtmek isterimki örneklerimizi bir uygulama üzerinden ele alıyor olacağız.Bu aşamadada ling ile sorgulama işlemlerine değiniyor olacağız.

İlk olarak  Object Relational Mapping nedir kısaca bahsedelim.Teknik anlamda basitce değinecek olursak veri tabanında bulunan her bir tabloya karşılık gelecek uygulama tarafında bir nesne oluşturma işlemidir.

Örnek bir kullanıma bakalım.



Şimdide Orm Haline Bakalım





Şimdi ise Ling to sql ile veri tabanı işlemlerine bakalım.

LINQ kelime olarak language Integrated Query yani dil ile bütünleştirilmiş sorgu anlamı taşır.Bildiğiniz gibi veri tabanı işlemleri için SQl kullanmaktaydık.Ve veri tabanımızı dizayn ettikden sonra için yazmış olduğumuz saklı yordamlar ve t-sql sorguları ile projemiz üzerindeki dataları işleyip kullanıcının talepleri doğrultusunda yansıtmaktaydık.İşte linq ile aertık bu sorgulama işlemleri için ayrı bir dil kullanmaya gerek kalmaz ve veri tabanı üzerinde crud(ekleme ,silme,güncelleme)secme gibi işlemleri gerçekleştirebiliriz.

Linq to sql ile .Net sınıfları kullanarak ilişkisel veri tabanları oluşturulabilir.Ve saklı yordamları store procedure ,view gibi yapılarıda kullanmaya imkan verir.

Ling to sql ile modelleme yaklaşımları Üç aşamada incelenebilinir.

Database First,Code First,Model First bunlara kısaca değinelim

Database First:Veri tabanımızı önceden tasaralamış isek veya farklı bir yerde hazır duruyorsa bu modelleme aracı kullanılabilinir.Ve veri tabanındaki tablolarınız classlara columslarınız propertieslere
içersinde bulunan store proclarınız ise metodlara dönüşecektir.

Code First:Modelleme aracının kodları kendisinin üretmesi bazen sorunlar çıkarabilir.(Composite Primary key vs).Bu aşamada yazılımcı Entity Freamwork veri tabanını kendisi oluşturuyor.İlerleyen aşamalarda code first yaklaşımına uygun örnekler blog üzerinden gerek mvc ile gereksede entity freamwork anlatımları sırasında değinilecektir.

Model First:Kod veya Sql sorguları yazmak yerine model oluşturup, bu modeldeki yapılara göre script'ler ve tabloların oluşturulduğu yapıdır.

Mvc üzerinde Ling to Sql Classes ile  bir örnek uygulama başlatalım



Giriş uygulamamız açısından  orm giriş yapıp bundan sonraki bölümde örnek bir uygulama yapısı içersinden(proje) konu anlatımına devam ediyor olacağız.Umarım faydalı olur

1 yorum :

Yorum Gönder

Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.

MSSQL TABLE - VALUED FUNCTION & MULTILINE-STATEMENT TABLE-VALUED FUNCTIONS & INLINE TABLE-VALUED FUNCTIONS

Hiç yorum yok
Merhaba Arkadaşlar ,


Bu bölümde Mssql Functions Kullanımının ikinci bölümü ile karşınızdayım .Bu noktada ele alacağımız kavramlar  MULTILINE-STATEMENT TABLE-VALUED FUNCTIONS & INLINE TABLE-VALUED FUNCTIONS olacak. Peki ama bunlar ne neden kullanırız gibi sorulara yanıt arıyor olacağız.ve video anlatım içindede belirttiğim gibi yazmış olduğumuz bu functionsların bulundukları yerleri ve üzerinde yapılacak modifikasyon işlemleri için Create ,Alter ,Drop keywordlerinden yararlanabileceğiz

Eğer function Kullanımında yeni iseniz  linkden ilk video anlatımıma ve c# nasıl kullanıldığı kısmına bakabilirsiniz Scalar -Valued Functions .

Kullanılan Function Örneği

USE [KuzeyRuzgari]
GO
/****** Object:  UserDefinedFunction [dbo].[UrunleriGetirSanal]    Script Date: 10/07/2014 22:02:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create function [dbo].[UrunleriGetirSanal](@UrunID int)
returns @SanalTablo table
(ID int,Urunadi nvarchar(40),fiyat money)
as
begin
if @UrunID <0
begin
Insert Into @SanalTablo(ID,Urunadi,fiyat)
Select UrunID,UrunAdi,Fiyat from Urunler--Burda değerler tablo halinde dönecek
end
else if @UrunID>0
begin
Insert Into @SanalTablo (ID,Urunadi,fiyat)
Select UrunID,UrunAdi,Fiyat from Urunler where UrunID=@UrunID
end
else
begin
 Insert Into @SanalTablo (ID,Urunadi,fiyat)
Select 0,'Veri yok',10
end
return-- Sanal Tablomu Döner
end
--Kullanım
Select ID,Urunadi,fiyat from UrunleriGetirSanal(-1)


Video Anlatım :






















Başka bir örnekle devam edelim.Arama İşlemleri yapabileceğimiz bir örnek senaryo ile tablomuz içinde ki kolonlara atama işlemleri ile geriye tablo dönen bir function yazarak bu işlemleri gerçekleştirelim.Önce sorgumuz ve tablomuz gelsin

Create function fn_StokArama
(
@TipID int,
@StokBarkod nvarchar(30),
@StokAdi nvarchar(50),
@StokKodu nvarchar(20))
returns @SanalTablo table
(ID int,stokbarkod nvarchar(30),stokkodu nvarchar(20),stokadi nvarchar(50))
as
begin
    if(@TipID=1)
        begin
        Insert Into @SanalTablo (ID,stokbarkod,stokkodu,stokadi)    Select ID,StokBarkod,StokKodu,StokAdi from tbl_Stoklar where StokKodu like '%'+@StokKodu+'%'
        end
    else if(@TipID=2)
     begin
    Insert Into @SanalTablo (ID,stokbarkod,stokkodu,stokadi)    Select ID,StokBarkod,StokKodu,StokAdi from tbl_Stoklar where StokAdi like '%'+@StokAdi+'%'
      end
      else if(@TipID=3)
      begin
            Insert Into @SanalTablo (ID,stokbarkod,stokkodu,stokadi)    Select ID,StokBarkod,StokKodu,StokAdi  from tbl_Stoklar where StokBarkod like '%'+@StokBarkod+'%'
          end
          return
end

Select * from fn_StokArama(1,'','','2')

--Declare @StokKodu nvarchar(20)
--set @StokKodu
--Select ID,StokBarkod,StokKodu,StokAdi from tbl_Stoklar where StokKodu like '%'+@StokKodu+'%'

Şimdi Kullandığımız tbl_Stoklar tablomuzu görelim


















Şimdi ise elde edeceğimiz sonucu görelim









Umarım Faydalı olmuştur.

Hiç yorum yok :

Yorum Gönder

Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.

ListView CheckBoxes Kullanımı ve Xml Web Servisler

Hiç yorum yok
Merhaba Arkadaşlar,


Bu bölümde listview üzerinde bulanan propertylerden CheckBoxes özelliğini kullanarak bir uygulama geliştiriyor olacağız.Asıl amacımız CheckBoxes kullanımına bakmak olacak fakat uygulamamız içinde ele alacağımız senaryoda xmlwebservislere,StreamWriter Sınıfına ,Xml WebConfig dosyası içindeki connectionstring sectionına bakıyor olacağız.

Uygulama içerisinde asıl itibari ile xml webservisden 'den dönen değerleri karşılama bu değerleri alıp işeleyip ListView CheckBoxes Kullanımına değinmek istedim.

Umarım faydalı olur.Uygulamanın sources dosyasını vermek verine uygulamanın tamamnını vererek
ilerliyor oalcağım.Sebebi uygulama içinden birden fazla sayfa olması ve bu sayfalar dışında servisde yapılan metodların bulunması

Servis1.asmx

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data.SqlClient;
using System.Configuration;
using System.Web.Configuration;
using System.Net;
using System.Data;
namespace SinanArslanlsvKullanimi
{
    /// <summary>
    /// Summary description for Service1
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class Service1 : System.Web.Services.WebService
    {
        private string cnnstr = WebConfigurationManager.ConnectionStrings["baglantim"].ConnectionString;
 
        [WebMethod]
        public bool KullaniciVarmi(string KullaniciAdi, string Sifre)
        {
            bool sonuc = false;
            SqlConnection cnn = new SqlConnection(cnnstr);
            SqlCommand cmd = new SqlCommand("Select * from Kullanici where UserName=@UsName and Password=@Pass", cnn);
            cmd.Parameters.AddWithValue("@UsName", KullaniciAdi);
            cmd.Parameters.AddWithValue("@Pass", Sifre);
            try
            {
                if (cnn.State == ConnectionState.Closed)
                {
                    cnn.Open();
                }
                SqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    sonuc = true;
                }
                rdr.Dispose();
            }
            catch (WebException ex)
            {
                string hata = ex.Message;
            }
            finally 
            {
                cnn.Close();
            }
            return sonuc;
        }
 
        [WebMethod]
        public DataSet KategoriGetir()
        {
            DataSet ds = new DataSet();
            using (SqlConnection cnn = new SqlConnection(cnnstr))
            {
                DataTable dt = new DataTable("Kategori");
                SqlDataAdapter adp = new SqlDataAdapter("Select * from Kategoriler", cnn);
                adp.Fill(dt);
                ds.Tables.Add(dt);
            }
            return ds;
        }
 
        [WebMethod]
        public DataSet UrunleriGetir(int type, int KategoriID,string UrunAdi)
        {
            DataSet ds = new DataSet();
            using (SqlConnection cnn = new SqlConnection(cnnstr))
            {
                SqlCommand cmd = new SqlCommand("UrunleriGetir", cnn);
                cmd.CommandType = CommandType.StoredProcedure;
 
                cmd.Parameters.AddWithValue("@type", type);
                cmd.Parameters.AddWithValue("@KategoriID", KategoriID);
                cmd.Parameters.AddWithValue("@UrunAdi", UrunAdi);
 
                DataTable dt = new DataTable("Urunler");
                SqlDataAdapter adp = new SqlDataAdapter(cmd);
                adp.Fill(dt);
                ds.Tables.Add(dt);
            }
            return ds;
        }
 
    }
}
 
================================================================
Form1 Kullanıcı Giriş
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace LsvKullanimi
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
            ServisSaglayici.Service1 svc = new ServisSaglayici.Service1();
        private void Form1_Load(object sender, EventArgs e)
        {
            DataSet ds = new DataSet();
             ds=svc.KategoriGetir();
             cmbKategori.ValueMember = "CategoryID";
             cmbKategori.DisplayMember = "CategoryName";
             cmbKategori.DataSource = ds.Tables[0].DefaultView;
          
        }
 
        private void cmbKategori_SelectedIndexChanged(object sender, EventArgs e)
        {
            txtKatID.Text = Convert.ToString(cmbKategori.SelectedIndex + 1);
            
        }
 
        private void btnGiris_Click(object sender, EventArgs e)
        {
            if (txtKullaniciAdi.Text == "" || txtSifre.Text == ""||txtKatID.Text=="")
            {
                MessageBox.Show("Tüm Alanlar Doldurulmalıdır");
            }
            else
            {
bool sonuc = svc.KullaniciVarmi(Kontrol.Temizle(txtKullaniciAdi.Text), Kontrol.Temizle(txtSifre.Text));
                if (sonuc)
                {
                    Form2 frm = new Form2(txtKatID.Text);
                    frm.Show();
                    this.Hide();
                }
                else
                {
                    MessageBox.Show("Kullanıcı Adi veya Şifre Hatalı");
                }
            }
        }
    }
}
 =========================================================
form 2 Verileri Listele Seç

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
 
namespace LsvKullanimi
{
    public partial class Form2 : Form
    {
        public string KategoriID { getset; }
        public Form2(string KatID)
        {
            KategoriID = KatID;
            InitializeComponent();
        }
        int tip = 1;
        ServisSaglayici.Service1 svc = new ServisSaglayici.Service1();
        private void Form2_Load(object sender, EventArgs e)
        {
            txtGelenID.Text = KategoriID;
            Doldur();
        }
 
        private void Doldur()
        {
            lsvSonuc.Items.Clear();
            DataSet ds = new DataSet();
            ds = svc.UrunleriGetir(tip, Convert.ToInt32(KategoriID),txtUrunAra.Text);
            DataTable dt = new DataTable();
            dt = ds.Tables[0];
            foreach (DataRow row in dt.Rows)
            {
                ListViewItem item = new ListViewItem("Sec");
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    item.SubItems.Add(row[i].ToString());
                }
                lsvSonuc.Items.Add(item);
            }
        }
 
        private void btnHepsiniSec_Click(object sender, EventArgs e)
        {
            HepsiniSecSil(true);
        }
 
        private void HepsiniSecSil(bool deger)
        {
            for (int i = 0; i < lsvSonuc.Items.Count; i++)
            {
                lsvSonuc.Items[i].Checked = deger;
            }
        }
 
        private void btnHepsiniBirak_Click(object sender, EventArgs e)
        {
            HepsiniSecSil(false);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            int tip1 = 2;
            lsvSonuc.Items.Clear();
            DataSet ds = new DataSet();
            ds = svc.UrunleriGetir(tip1, Convert.ToInt32(txtGelenID.Text),txtUrunAra.Text);
            DataTable dt = new DataTable();
            dt = ds.Tables[0];
            foreach (DataRow row in dt.Rows)
            {
                ListViewItem item = new ListViewItem("Sec");
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    item.SubItems.Add(row[i].ToString());
                }
                lsvSonuc.Items.Add(item);
            }
 
        }
 
        private void btnListeGetir_Click(object sender, EventArgs e)
        {// tüm liste getir
 
            Doldur();
        }
 
        private void button2_Click(object sender, EventArgs e)
        {//UrunAdına Göre Getir
            int tip2 = 3;
            lsvSonuc.Items.Clear();
            DataSet ds = new DataSet();
            ds = svc.UrunleriGetir(tip2, Convert.ToInt32(txtGelenID.Text), txtUrunAra.Text);
            DataTable dt = new DataTable();
            dt = ds.Tables[0];
            foreach (DataRow row in dt.Rows)
            {
                ListViewItem item = new ListViewItem("Sec");
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    item.SubItems.Add(row[i].ToString());
                }
                lsvSonuc.Items.Add(item);
            }
        }
 
        private void btnYazdir_Click(object sender, EventArgs e)
        {string  gelen1="";string  gelen2="";string  gelen3="";
            int secimsayisi = lsvSonuc.CheckedItems.Count;
            if (secimsayisi > 0)
            {
                for (int i = 0; i < secimsayisi; i++)
                {
                    ListViewItem secim = lsvSonuc.CheckedItems[i];
                   gelen1= secim.SubItems[1].Text.ToString();
                   gelen2 = secim.SubItems[2].Text.ToString();
                   gelen3=secim.SubItems[3].Text.ToString();
                }
                string dosyayolu =Application.StartupPath+"\\Dosya.txt";
                StreamWriter dosyayaz = new StreamWriter(dosyayolu);
                dosyayaz.WriteLine(gelen1+","+ gelen2+","+ gelen3);
                dosyayaz.Close();
                MessageBox.Show("Veriler Yazıldı");
            }
        }
    }
}





Video1 :


Video 2:


Video 3:



Hiç yorum yok :

Yorum Gönder

Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.