Mssql ve c# kullanarak otomasyonlara giriş part-1

Codx

Katılımcı Üye
30 Tem 2017
309
1



Merhabalar, herkese iyi forumlar.

Şahin Boydaş bir söyleşisinde şöyle söylemiştir; Ülkemizde en yaygın kullanılan programlar otomasyonlardır.

Nedir Bu Otomasyonlar?

Otomasyonlar yönetim sistemleridir. Örnekler üzerinde açıklayacak olursak eğer, bir eczanenin doposunda bulunan ilaçları, sattığı ilaçları takip ettiği listelediği raporladığı sistemler birer otomasyondur. Süpermarketlerin dopalını takip ettiği, günlük satışlarının verilerini tuttuğu sistemler birer otomasyon örnekleridir. Bu sistemlere en iyi örnek ERP adıyla bilinen, diğer adıyla ise "Kurumsal Kaynak Planlaması" sistemleridir.

ERP sistemlerinin resimlerini telif hakkından kaçınmak için buraya örnek olarak koymuyorum. Google üzerinde "ERP programları" araması yaparak örnek programlara ulaşabilirsiniz.

Ne Yapacağız?

Otomasyonlardan bahsettikten sonra, hem C# ile tanışmak isteyenler, hem C# öğrenmeye çalışanlara alıştırma niteliğinde bu konuyu elimden geldiğince yüzeysel bir şekilde açıklayacağım.

  • MSSQL üzerinde ihtiyacımız olan veri tabanını oluşturacağız.
  • Bu veri tabanının içerisinde bir tablo oluşturacağız.
  • Bu tabloda Insert, Update ve Delete işlemlerimiz için Procedure'ler yazacağız.
  • Bu procedure'lerimizin daha performanslı çalışmasını sağlayacağız.
  • İkinci partımızda bu veri tabanına yazdığımız procedureler yardımıyla Ekleme Silme Ve Güncelleme işlemleri yapacağız.

Veri Tabanımızı Hazırlayalım

Ben personel kayıt otomasyonu hazırlayacağım. Bu otomasyonda Kişinin Adı, Soyadı, Telefon Numarası ve Resmini ByteArray tipinde kayıt edeceğim.

Sql Server Management Studıo'yu açtıktan sonra Crtl + N tuşları ile New Query sayfası açıyorum. Ardından sorgularımı yazmaya başlıyorum.

Öncelikle bir veri tabanı oluşturmalıyım. Sonra yazacağım sorguların hangi veri tabanında kullanılacağını belirtmek olacak bunun işlem sırasını belirtmek aralarına "GO" komutunu kullancağım.

Kod:
CREATE DATABASE Employees
GO

USE Employees
GO


Not: "USE databaseName" şeklinde bir sorgu yazıp çalıştırmak, geçerli Query Editor sayfasında kullanmak istediğim veri tabanını belirtmek için kullanılır.

Verileri kayıt edeceğim veri tabanını oluşturduktan sonra sırada kayıt edeceğim tabloyu oluşturmak var. Sadece resim alanımın boş geçilebilmesini istiyorum. Bu yüzden boş geçilmesini istemediğim alanların sonuna ""NOT NULL" ifadesi ekliyorum.

Kod:
CREATE TABLE Employee (
	Id INT IDENTITY,
	FirstName VARCHAR(50) NOT NULL,
	LastSurname VARCHAR(50) NOT NULL,
	Phone VARCHAR(50) NOT NULL,
	Picture IMAGE NULL
)
GO
Id alanım IDENTITY özelliğine sahip olduğu için her kayıtta kendisini bir arttırarak Insert işlemiini gerçekleştirecektir. Bu sebeple "NULL || NOT NULL" gibi ifadelerin orada bulunması bir anlam ifade etmemektedir.

Buraya kadar yazdığımız kodların görünütü şu şekilde olacaktır;


Bir veri tabanı oluşturduk istediğimiz kolonlara sahip bir veri tablo da oluşturduk. Sıra geldi bunun üzerinde işlemlerimizi daha rahat yapabilmek için Procedure'lerimizi yazmaya.

  • Listeleme
  • Kayıt
  • Güncelleme
  • Silme

İşlerim için birer procedure oluşturacağım.
Procedure nasıl yazılır? Nasıl daha performanslı çalışır? Anlatımlarımın bulunduğu konuya buradan ulaşabilirsiniz.

Şimdi sırası ile Procedure'lerimizi hazırlayalım. Select işlemimiz için;
Kod:
CREATE PROC SP_Select
AS
BEGIN
	SELECT * FROM Employee
END

Kayıt işlemimiz için Insert Proc'u yazalım. Bu procedure Id alanım dışındakı her alana kayıt atacağı için 4 adet parametre alır.
Kod:
CREATE PROC SP_Insert(
  [USER=54181]first[/USER]Name VARCHAR(50),
  [USER=78513]Last[/USER]Surname VARCHAR(50),
  [USER=359876]phone[/USER] VARCHAR(50),
  [USER=268065]***[/USER]ture IMAGE
)
AS 
BEGIN
	INSERT INTO Employee VALUES   [USER=54181]first[/USER]Name  [USER=78513]Last[/USER]Surname  [USER=359876]phone[/USER]  [USER=268065]***[/USER]ture)
        --Employee tablosuna parametrelerde gönderdiğim değerleri ekle
END
Go

Delete Proc;
Kod:
CREATE PROC SP_Delete
	@Id INT
AS 
BEGIN
	DELETE FROM Employee WHERE Id = @Id 
         --Employee tablosundan Id değerini parametre içerisinden gönderdiğim kayıtı sil
END
GO

Update Proc;
Kod:
CREATE PROC SP_Update(
	@Id INT,
  [USER=54181]first[/USER]Name VARCHAR(50),
  [USER=78513]Last[/USER]Surname VARCHAR(50),
  [USER=359876]phone[/USER] VARCHAR(50),
  [USER=268065]***[/USER]ture IMAGE
)
AS
BEGIN
	UPDATE Employee 
        --Employee tablosunu güncelle
        SET FirstName  [USER=54181]first[/USER]Name,LastSurname  [USER=78513]Last[/USER]Surname,Phone  [USER=359876]phone[/USER],Picture  [USER=268065]***[/USER]ture
        --parametrelerimde gönderdiğim değerler ile
	WHERE Id=@Id
        --Id'sini parametre olarak bildirdiğim kayıtı
END

Procedure'lerimizin görüntüsü resimde görüldüğü şekildedir.

Temel şekilde kayıtlarımızı gireceğimiz tablomuzu ve Procedurelerimizi hazırladık. Bir sonraki partta görüşmek üzere.
İyi Forumlar.


Bu yazının ikinci partına buradan ulaşabilirsiniz.

 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.