Ado. Net Depo Otomasyon 2 bölüm
Merhaba
Ado.Net Otomasyon Senaryomuzun 2 bölümü
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DepoStokJoin
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
TedarikciGetir();
KategoriGetir();
}
SqlConnection cnn = new SqlConnection("Data Source=DESKTOP-F7P5CJL\\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True");
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DepoStokJoin
{
public class ComboMain
{
public string Text { get; set; }
public object Value { get; set; }
public override string ToString()
{
return Text;//Ekrana Comboboxdaki Şirket adi veya KategoriAdinı almak için yaptık
}
}
}
Erdem Yazılım Lisesi Öğrencileri için hazırlanmıştır
Ado.Net Depo Otomasyon
Merhaba Arkadaşlar ;
Bu bölümde bir senaryo ele alıp bu senaryoya göre Windows Application'ımız üzerinde ilerliyor olacağız.
Senaryo
Senaryo ;
Öğrencilerimizden Selim ABC isimli yazılım firmasında işe başlamıştır. Selim'den istenen ülkeler arası taşımacılık yapan DEFG isimli firmanın deposuna gerekli yazılımı yapmasıdır.
Depo elamanı Mike 'ın depodaki ürünlerin listeni görebileceği bir ekran tasarlanması ve bu ekran üzerinde seçili ürüne tıklayıp detayını görmesi ,stok miktarı azalmış ise yada ürün isminde ,tedarikçisinde ,kategorisinde bir değişik olduğunda güncelleyebilmesi ve stoklarını takip edip gereken uyarıyı zamanından önce üst kademesine yada tedarikçi firmaya bildirebilmesidir.
Bu nedenle aşağıdaki formların tasarım ekranlarını yapmanız beklenmektedir. Daha sonra projemizin kod ekranlarını sınıf ortamında bir Database oluşturup yazıyor olacağız.
Ekran Tasarımlarımız
Merhaba Arkadaşlar ;
Bu bölümde Ultrasonik mesafe sensörü kullanıyor olacağız.
Devre şemamız
Ardiuno R3 Potansiyometre Kullanımı
Merhaba Arkadaşlar ;
Bu bölümde basit manada potansiyometre kullanımına bakıyor olacağız.
Devre Şemamız
Ardiuno R3 SG90 Motor Kullanımı
Merhaba Arkadaşlar;
Ardiuno ile sg90 motor kullanımına bakıyor olacağız .Devre şeması çizimimiz aşağıdaki gibidir.
Karanlıkta Lamba Yakımı Ardiuno
Merhaba arkadaşlar;
Bu bölümde ardiuno r3 ile karanlıkta çalışan lamba yapımını paylaşıyor olacağım.
Devre Tasarımı
Kodlama Dersi
Lightbox
Starfall
Codemino
Eba Cody
Fungooms
Silent Teacher
Mobil Kod
Hacker Can
Thissand
Color Mandala
Code Monkey
Abcya
Blockly Games
Compute It
Tinkercad
Kidlo Coding
Görünmez
Alice 3 Oyun Tasarımı
Merhaba Arkadaşalar ,
Alice 3 ile basit ama etkileyici oyunlar yapabilirsiniz.Biz bu bölümde basit anlamda yüreme ve kamera açılarını ele alarak yazmış olduğum procedure ve propertyler üzerinden devam ediyor olacağım.
Tinkercad Circuits
Merhaba Arkadaşlar ,
Tinkercad Circuits ile ardiuno set'e sahip olmasak bile birçok devre tasarımı yaparak kullanabilmekteyiz.
Devre tasarımlarım ve kod bloklarımı ziyaret etmek için bu linkten ulaşabilirsiniz.
https://www.tinkercad.com/users/3zaTml9AYTW
int yesil=9,mav=10,kir=11;
void setup()
{
pinMode(yesil,OUTPUT);
pinMode(mav,OUTPUT);
pinMode(kir,OUTPUT);
//analogwrite(pin,deger):bu komut sayesinde
/*
bir motoru farklı hızlarda yada bir ledi farklı parlaklıklarda
yakabiliriz
analog çıkışlı pinler 3,536,9,10,11
*/
}
void loop()
{
//Beyaz
analogWrite(kir,255);//beyaz 255 renk
analogWrite(yesil,255);//beyaz 255 renk
analogWrite(mav, 255);//beyaz 255 renk
delay(1000); // Wait for 1000 millisecond(s)
//Sarı
analogWrite(kir,255);//beyaz 255 renk
analogWrite(yesil,255);//beyaz 255 renk
analogWrite(mav,0);//sarı
//Mor
delay(1000); // Wait for 1000 millisecond(s)
analogWrite(kir,255);//beyaz 255 renk
analogWrite(yesil,0);//mor
analogWrite(mav,255);//beyaz 255 renk
delay(1000);
}
Tinkercad Tasarım
Merhaba Arkadaşlar
Tinkercad ile basit hızlı bir şekilde tasarımlar yapabilmekteyiz.Dosya uzantısı olarak .stl ile dışa aktar diyip cura gibi programlar sayesinde 3d yazıcıdan baskı olarak çıktı alabilmekteyiz.
Bazı basit örnek çalışmalar
ARTIRILMIŞ GERÇEKLİK MERGE CUBE
Merge Cube
Merhaba arkadaşlar bu bölümde artırılmış gerçeklik uygulamalarından merge cube değinmek istiyorum.Merge Cube ile birçok uygulama yapılabilmektedir.Öncelikle gereken aşağıdaki resimdeki küpü oluşturmak.Kolejler için Demo Proje Paylaşımı
Merhaba Değerli Arkadaşlar,
Kolejler için yazmış olduğum uygulamaların demo kısımlarını paylaşıyor olacağım.Etkileşimli uygulamalar noktasında kullanışlı basit örnek web site ve masa üstü uygulamaları olarak eğitim sektörü için ücret dahilinde eğitim yazılımları yapmaktayım.
Ekran Görüntüleri
Scratch Oyun Yapımı
Bu bölümde basit ama eğlenceli bir oyun yapıyor olacağız.Scratch 2 içersinden Giga walking karakterini seçiyoruz.Bunun için yeni kukla seçimine basıyoruz ve karşımıza çıkan pencereden fantezi sekmesinden gigawalking karakterini seçiyoruz.
Daha sonra sahne için bluesky'ı seçiyoruz ve engel olarak yeni kukla sekmesinden ağaç karakterini seçip kodlama işlemlerine geçebiliriz.
Giga Walking Karakteri Kodları
Gigawalking karakterine ait kodlar yan tarafta görülmektedir
Tree1 karakterine ait kodlar yan tarafta görülmektedir.
Oyunumuzun Son Hali
Arduino Değişken Tanımlama
Arduino ile değişken tanımlama bölümüne değindiğim bu yazıda temel amaç uygulama üzerinden gidebilmektir.Bunun yanı sıra değişken tiplerinin değer aralıklarını paylaşmadım.Nedeni birden fazla dilde değişiklik gösteren değer aralıkları internet gibi bir ortamda bulunabilmektedir
//Değişken tanımlama
/*
Değişken temel anlamda program kullanılacak birimlerin
gecici alianz olarak isimlendirilmesine yarar
sayısal değişkenler ,karakter (char) , metinsel string, ve
durum belirten çeşitleri vardır(bool) gibi
değişkenler belirli değer aralıklarına sahiptir.
sunumda detaylı anlatacağım.Başlıca değişkenler
int,string,char, bool,float vs
değişken tanımlarken belirli kurallar vardır.değişkenler
sayı ile başlamaz arada boşluk bırakılarak tanımlanmaz
ve kodlama da standart sağlanması adına camelcase kullanılır
*/
/*bool durum1=true;bool durum2=false;*/
int sayi_1=99.9;//integer tipindeki değişkenler , den sonraki kısmı
//tutmaz
double sayi_2=99.6;
void setup()
{
Serial.begin(9600);
Serial.println(sayi_1);
Serial.println(sayi_2);
}
void loop()
{
/*if(durum1==0)
{
Serial.println(durum1);
delay(5000);
}
else if(durum1==1)
{
Serial.println(durum2);
delay(5000);
}
else{
Serial.print(" DURUM BULUNAMADI");
delay(5000);
}*/
}
Arduino Random Sayı Üretmek
Arduino ile Random fonksiyonuna ait özelliklere değinmeye çalıştım.Umarım Faydalı olur
/*
Random(): Bu method ile belirli aralıklarda sayılar üretilip
değişkenlere aktarılabilir
Random(max):Bu method ile değişkenin en küçük değeri ile
maximum değeri arasında sayı üretmeye yarar
Random(min,max):Bu method ile belirlenen min değeri ile max
değeri arasında sayı üretilebilinir
Random(1,10);örneğin burda 1 ila 9 arasında sayı üretimi
gerçekleşir
*/
//global değişken
//byte degisken_sayi;
long degisken_sayi;
void setup()
{
Serial.begin(9600);
randomSeed(100);
Serial.println(" Uretilen Rastgele Sayilar");
Serial.print("=============================");
Serial.println(" ");
}
void loop()
{
// degisken_sayi=random();
// degisken_sayi=random(100);
/*random fonksiyonu ile üretilen sayılar hep aynı dizilimi
takip eder
Farklı dizin aralıklarında sayı üretmek için randomSeed();
kullanılır
*/
/*
arduino unonun analoğ pinlerine herhangi bir pin bağlanmadığında
0 ila 1023 arasında değerler okunur bunu da analogRead(A0)
ve randomSeed();methodları kullanarak rastgele yapabiliriz
arduino nun A0 dan A6 ya kadar 5 adet analog girişi mevcuttur
*/
//degisken_sayi=random(1,100);
degisken_sayi=analogRead(A0);
Serial.println(degisken_sayi);
delay(5000);
}
Arduino Random Led Yakımı Buton ile
Arduino Uno ile Tinkercad üzerinde hazırlamış olduğum devre ile butona basılınca rastgele yanan led uygulamasını sizlerle paylaşıyorum
Devre Çizimi
Kod Paylaşımı
LINQ Query Expressions
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