İstanbul

İstanbul

20 Mart 2015 Cuma

TextBox'a yazılanı SQL Veritabanı'nda aramak

private void txt_Aranan_Kelime_TextChanged(object sender, EventArgs e)
        {
            tools.conn.Open();

            DataTable dt = new DataTable ();

            if (txt_Aranan_Kelime.Text.Trim() == "")
            {
                dt.Clear();
                SqlDataAdapter adp = new SqlDataAdapter ("Select * From Uyeler"tools.conn);
                adp.Fill(dt);
                dataGridView1.DataSource = dt;
            }
            else
            {
                SqlDataAdapter adp = new SqlDataAdapter ("Select * From Uyeler Where KullaniciAdi Like'%" + txt_Aranan_Kelime.Text + "%' or Telefon Like '%" + txt_Aranan_Kelime.Text+  "%'"tools.conn);
                adp.Fill(dt);
                dataGridView1.DataSource = dt;
            }
            tools.conn.Close();
        }

13 Mart 2015 Cuma

PictureBox 'a resim eklemek

Formumuza 1 adet PictureBox ekliyoruz.
Hemen altına 1 adet button ekliyoruz ve evets'ine aşağıdaki kodları yazıyoruz


 private void btnEkle_Click(object sender, EventArgs e)
        {
OpenFileDialog fd = new OpenFileDialog ();
            fd.Title = "Resim Aç";
            fd.Filter = "Jpeg Dosyası (*.jpg)|*.jpg|Gif Dosyası (*.gif)|*.gif|Png Dosyası (*.png)|*.png|Tif Dosyası (*.tif)|*.tif";
            if (fd.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.Image = Image.FromFile(fd.FileName);
                resimPath = fd.FileName.ToString();
            }
        }

10 Mart 2015 Salı

SQL Join (Left Join, Right Join, Full Join, Cross Join,)

* Sorguda tam eşleşme olacağı için hiçbir şekilde kategori ID kolonu boş olan yani eşleşme sağlanamayan veriler gelmeyecektir. Bazı durumlarda yazılımımızın gidişatını olumsuz etkileyebilir.

Select from Products p
join Categories c on p.CategoryID =  c.CategoryID

** Left Outer Join
Sorgumuza katılan tablolar da eşleme yapılan kolon eğer sorguda sol tarafa yazılan tabloda boş olsa bile sol taraftaki tablonun bütün verileri size teslim edilir. Eşleme sağ taraftaki tablo için geçerli olacaktır.

Select from Products p left join Categories c on p.CategoryID = c.CategoryID

** Right Outer Join
Sorgumuza atılan tablolarda sağ taraftaki tablonun içerisinde tam eşleme olmasa bile yani, sağ taraftaki tablonun tüm verilerinin getirir. Sol taraftaki tablonun sadece eşleşen verilerini getirir.

Select from Products p
right join Categories c on p.CategoryID = c.CategoryID

** Full Join
Left ve Right joinin birleşimidir.

Select from Products p
full join Categories c
on c.CategoryID = p.CategoryID

** Cross Join
Select COUNT(*) from PRODUCTS = 79 Ürün
Select COUNT(*) from Categories = 8 category

Select from  Products
Cross join Categories

9 Mart 2015 Pazartesi

SQL View Kullanımı (Create, Drop, Alter)

** Select
* Bir siparişin hangi çalışan tarafından hangi müşteriye hangi kategorideki üründen hangi fiyattan kaç adet satıldığını listeleyiniz.
* Çalışanın adı, soyadı, ünvanı, işe başlama tarihi
* Müşterinin firma adını, temsilcisini ve telefonunu
* Ürününün adını stok miktarını birim fiyatını
* Siparişin adetini, ve satış fiyatını
* Kategori adını getiren sorgu.

Select * From Employees -- orders
Select * From [Customers] --order
Select * From Products - --orders details
Select * From orders -- employess
Select * From [Order Details] --produtctID
Select * From Categories -- product


Select 
e.FirstName + ' ' + LastName as [Çalışan Per],
e.Title as Unvan,
e.HireDate as [Ise Baslama Tarihi],
c.CompanyName as FirmaAdi,
c.ContactName as Yetkili,
c.Phone as Tel,
p.ProductName as UrunAdi,
p.UnitsInStock as Miktar,
p.UnitPrice as Fiyati,
ca.CategoryName
From Employees e
inner join orders o on o.EmployeeID = e.EmployeeID
inner join Customers c on c.CustomerID = o.CustomerID
inner join [Order Details] od on od.OrderID = o.OrderID
inner join Products p on p.ProductID = od.ProductID
inner join Categories ca on ca.CategoryID = p.CategoryID

** Create
Gerçekte var olmayan select ifadeleri ile tanımlanan sanal tablolardır.
Kaydedilmiş sorgular dır.

Create View Urunler
as
Select 
                e.FirstName + ' ' + LastName as [Çalışan Per],
e.Title as Unvan,
e.HireDate as [Ise Baslama Tarihi],
c.CompanyName as FirmaAdi,
c.ContactName as Yetkili,
c.Phone as Tel,
p.ProductName as UrunAdi,
p.UnitsInStock as Miktar,
p.UnitPrice as Fiyati,
ca.CategoryName
From Employees e
inner join orders o on o.EmployeeID = e.EmployeeID
inner join Customers c on c.CustomerID = o.CustomerID
inner join [Order Details] od on od.OrderID = o.OrderID
inner join Products p on p.ProductID = od.ProductID
inner join Categories ca on ca.CategoryID = p.CategoryID


* Sadece Çalışanın işe giriş tarihi, doğum tarihi, adı ve yaşadığı şehir bilgisine erişilebilecek olan bir view oluşturunuz.
Create View Personeller
as
Select BirthDate,HireDate,FirstName,City from Employees

** Alter
Alter view Personeller = View içeriğini değiştirmek isterseniz alter kullanabilirsiniz.
as
Select BirthDate,HireDate,FirstName,City,LastName from Employees

** Drop


Drop View Personeller  = View'ı siler.

7 Mart 2015 Cumartesi

SQL (Case When Then) Kullanımı

Select (CASE Employees.City When 'London' Then 'İngiltere' Else 'Boş' END),* From Employees

Select (CASE Employees.TitleOfCourtesy When 'Ms.' Then 'Bay'
When 'Mr.' Then 'Bay' end) From Employees

SQL Son eklenen verinin ID'sini almak


Select SCOPE_IDENTITY() as YeniEklenenID

Insert Into Products (ProductName,UnitsInStock) values ('Yepyeni Ürün',0) Select SCOPE_IDENTITY() as YeniEklenenID

SQL (Insert Update Delete) Kullanımı

** Insert
Veritabanınızdaki bir tablonun içerisine kod ile ekleme yapmak isterseniz insert sorgusu kullanmanız gerekir. 
Şablonu şu şekildedir;
Insert Into <tablo_adi> (<kolon_isimlerini>) values (<eklenecek_veriler>)

* Categories tablosuna Laptop isminde bir kategori ekleyelim,
Insert Into Categories (CategoryName) values ('Dizüstü')

Insert Into Categories(Description) values ('Açıklama')
CategoryName boş geçilemez bir kolon olarak ayarlanmış olduğu için CategoryName bilgisi mutlaka verilmelidir.
Insert Into Categories(CategoryName,Description) values ('Yeni Kategori','Kategorinin açık')

Not : Tüm kolonlara ekleme yapacaksanız kolon isimlerini vermenize gerek yoktur. Direkt olarak değerleri verebilirsiniz.
Insert Into Shippers values ('Yurtiçi kargo','0850002266')
Select * from Shippers

** Update
Tablonuz içerisinde bulunan tüm verileri yada tek bir veriyi güncellemenize olanak tanıyan sorgudur. Şablonu şu şekildedir.

Update <tablo_adi> Set <kolon_adi> = <kolon_degeri>, <kolon_adi2> = <kolon2_degeri>
Not : Yukarıdaki sorguyu çalıştırırsanız bütün verileri değiştirecektir. Eğer ki tek bir veriyi değiştirmek isterseniz o veriyi tanıdığınz kolon (ID) için where anahtar kelimesi kullanırsınız.

* Sadece 4 id'sine sahip olan veri güncellenecektir.
Update Shippers Set CompanyName = 'MNG Kargo' where ShipperID = 4  

* Bir ürün ekleyiniz, Eklenilen bu ürünün ismini güncelleyiniz içindeki stok değeri her ne kadarsa her güncelleme esnasında 5'er 5'er arttırınız.. Güncellenecek verinin id'si son eklenen verinin id'si olmalıdır. 
Insert Into Products (ProductName,UnitsInStock) values ('Yepyeni ürün',0)
Select MAX(ProductID) from Products
Update Products Set UnitsInStock += 5 where ProductID = (Select MAX(ProductID) from Products)

** Delete 
* Bir tablodan tüm verileri yada tek bir veriyi silmek isterseniz delete komutu kullanılabilir. Şablonu şu şekildedir,
Delete from <tablo_adi> where <kolon_Adi> = 15

Not : Delete from TabloAdi şeklinde yazıp eğer ki koşul koymazsanız tüm verileri silebilirsiniz. 

* Son Eklenen Ürünü Silen Sorguyu Yazınız.
Delete from Products where ProductID = (Select MAX(ProductID) from Products)

* Yeni Kategori ismindeki bütün kategorileri silen sorguyu yazınız.
Delete from Categories where CategoryName = 'Yeni Kategori'

* Merhaba Dünya kategorisine ait olan bütün ürünleri silen sorguyu yazınız.
Delete from Products where CategoryID = (Select CategoryID from Categories where CategoryName = 'Merhaba Dünya')

Not : Select * Into <hedef_Tablo> from <kaynak_tablo> şeklinde yazacağınız sorgu kaynak tablonun yapısını birerbir hedef tablonun isminde yeni bir tablo olarak oluşturur. Kaynak tablo içerisindeki bütün verileri hedef tablonun yani yeni oluşturulan tablonun içerisine aktarır.

* Çalışanların ünvanları arasından Mr. veyA Dr. ünvanına sahip olanları silen sorguyu yazınız.
Delete from Calisanlar where TitleOfCourtesy IN('Mr.','Dr.')