Katmanlı mimariler hata düzeltmek için oldukça gelişmiş yardımcı diye biliriz. Söyle anlatmak gerekirse Cami 'ye gittiğimizde ayakkabı dolaplarına 1 2 3 4 5 6 ... diye sayılar verilmiş. Biz Cami ' den çıktığımızda dolap numaramızla hemen ayakkabımızın olduğu bölümü bulabiliriz. Sayıların olmadığını düşünün ne kadar karmaşa bir işin içinde olurdu hangi bölümdeydi tüm bölümleri açmak zorunda kalacaksınız. KATMANLI MIMARILER bu yönden önem taşır. Sistemin daha hızlı çalışmasına yardımcı olur büyük projelerde işe yaradığını bir çok farklı dökümanlardan kişilerden duydum.
Tabloismi : KATMAN
COLONLAR : ID INT,ADI NVARCHAR(50), GTM DATETIME(),HOSTNAME NVARCHAR(50);
Sql Serverde New Ouery den Stored Procedureleri yapalım
--PROCEDURE KISALTMASI PROC DİYE YAZARSAKTA ÇALIŞIR.
CREATE PROCEDURE KATMANINSERT
@ADI NVARCHAR (50),
@SOYADI NVARCHAR(50)
AS
INSERT INTO KATMAN(ADI,SOYADI) VALUES (@ADI,@SOYADI)
-- GMT VE HOSTNAME YAPMADIM NEDENİ BEN BUNLARI SQL SERVERDE OTOMATIK BAĞLADIM EKLEYEN
-- HER KİŞİNİN BİLGİSAYAR ISMINI EKLIYOR. BİLGİSAYARIMIN ISMI SEBIH YENİ KAYIT OLUŞTURDUĞUMDA KENDİLİĞİNDEN
--EKLİYOR
GO
CREATE PROCEDURE KATMANUPDATE
@ID INT,
@ADI NVARCHAR(50),
@SOYADI NVARCHAR (50),
@GTM DATETIME,
@HOSTNAME NVARCHAR(50)
AS
UPDATE KATMAN SET ADI=@ADI,SOYADI=@SOYADI,GTM=@GTM,HOSTNAME=@HOSTNAME WHERE ID=@ID
GO
CREATE PROCEDURE KATMANDELETE
@ID INT
AS
DELETE FROM KATMAN WHERE ID=@ID
GO
CREATE PROCEDURE KATMANSELECT
@ID INT
AS
SELECT * FROM KATMAN WN WITH (NOLOCK) WHERE WN.ID=@ID
GO
--WITH (NOLOCK) AMACI RAPOR ALIRKEN DATAGRİDVİEW KASMASINI ENGELLEMEK BİNLER KAYIT VAR VE ÇOK SÜRECEĞİNİ BİLİYORSUNUZ
--RAPOR ESNASINDA VERİLER AKTARANA KADAR EKLEME GÜNCELLE SİLME YAPAMAZSINIZ BUDA PROGRAMIN EKSİK YÖNÜNÜ BU KODLA ÇÖZEBİLİRSİNİZ..
CREATE PROCEDURE KATMANSELECTLIST
AS
SELECT * FROM KATMAN WITH (NOLOCK)
Bu işlemden sonra Windows Form Csharp bölümünü yapalım.
Project dosyasını açalım.
file new project diyelim class library
SOLUTION ADD TO SOLUTION // PROJEYE PROJE EKLEME
Formumuzu bu şekilde tasarlıyalım.
BAĞLANTI KODU
public static readonly SqlConnection Con = new SqlConnection(@"Server=.;Database=KATMANLIMIMARILER;uid=KULLANICIADI;password=SİFRE.");
ENTITY KAPSULLEME KODLARI.
private int _ID;
public int ID
{
get { return _ID; }
set { _ID = value; }
}
private string _ADI;
public string ADI
{
get { return _ADI; }
set { _ADI = value; }
}
private string _SOYADI;
public string SOYADI
{
get { return _SOYADI; }
set { _SOYADI = value; }
}
public void Dispose()
{
GC.SuppressFinalize(this);
}
}
İŞCİ SINIF KODLARI
public static int ISCIEKLE(KAPSULLEME item)
{
int sec = 0;
try
{
SqlCommand Komutekle = new SqlCommand("KATMANINSERT", Baglanti.Con);
Komutekle.CommandType = CommandType.StoredProcedure;
if (Komutekle.Connection.State != ConnectionState.Open)
{
Komutekle.Connection.Open();
}
Komutekle.Parameters.AddWithValue("ADI", item.ADI);
Komutekle.Parameters.AddWithValue("SOYADI", item.SOYADI);
sec = Komutekle.ExecuteNonQuery();
}
catch
{
sec = -1;
}
return sec;
}
public static bool ISCIGUNCEL(KAPSULLEME item)
{
bool sonuc = false;
try
{
SqlCommand Komutguncel = new SqlCommand("KATMANUPDATE", Baglanti.Con);
Komutguncel.CommandType = CommandType.StoredProcedure;
if (Komutguncel.Connection.State != ConnectionState.Open)
{
Komutguncel.Connection.Open();
}
Komutguncel.Parameters.AddWithValue("ID", item.ID);
Komutguncel.Parameters.AddWithValue("ADI", item.ADI);
Komutguncel.Parameters.AddWithValue("SOYADI", item.SOYADI);
sonuc = Komutguncel.ExecuteNonQuery() > 0;
}
catch
{
sonuc = false;
}
return sonuc ;
}
public static bool ISCIDELETE(int _ID)
{
bool sonuc = false;
try
{
SqlCommand Komutsil = new SqlCommand("KATMANDELETE", Baglanti.Con);
Komutsil.CommandType = CommandType.StoredProcedure;
if (Komutsil.Connection.State != ConnectionState.Open)
{
Komutsil.Connection.Open();
}
Komutsil.Parameters.AddWithValue("ID", _ID);
sonuc = Komutsil.ExecuteNonQuery() > 0;
}
catch
{
sonuc = false;
}
return sonuc;
}
public static KAPSULLEME ISCISELECT(int _ID)
{
KAPSULLEME item = null;
try
{
SqlCommand KomutSec = new SqlCommand("KATMANSELECT", Baglanti.Con);
KomutSec.CommandType = CommandType.StoredProcedure;
if (KomutSec.Connection.State != ConnectionState.Open)
{
KomutSec.Connection.Open();
}
KomutSec.Parameters.AddWithValue("ID", _ID);
SqlDataReader dr = KomutSec.ExecuteReader();
if (dr.HasRows)
{
while(dr.Read())
{
item = new KAPSULLEME();
item.ADI = dr["ADI"].ToString();
item.SOYADI = dr["SOYADI"].ToString();
}
}
}
catch
{
item = null;
}
return item;
}
public static List<KAPSULLEME> ISCILIST()
{
List<KAPSULLEME> itemL = null;
try
{
SqlCommand komutList = new SqlCommand("KATMANSELECTLIST", Baglanti.Con);
komutList.CommandType = CommandType.StoredProcedure;
if (komutList.Connection.State != ConnectionState.Open)
{
komutList.Connection.Open();
}
SqlDataReader dr = komutList.ExecuteReader();
if (dr.HasRows)
{
itemL = new List<KAPSULLEME>();
while (dr.Read())
{
KAPSULLEME item = new KAPSULLEME();
item.ADI = dr["ADI"].ToString();
item.SOYADI = dr["SOYADI"].ToString();
itemL.Add(item);
}
dr.Close();
}
}
catch
{
itemL = null;
}
return itemL;
}
ŞARTLI FİLTRELEME
public static int filtreekle(KAPSULLEME item)
{
int SONUC = 0;
try
{
if (item.ADI != null && item.SOYADI != null &&item.ADI.Trim().Length>0)
{
return ISCISINIFI.ISCISINIFI.ISCIEKLE(item);
}
else
{
}
}
catch
{
SONUC = -1;
}
return SONUC;
}
public static bool filtreguncel(KAPSULLEME item)
{
bool sonuc = false;
try
{
if (item.ADI != null && item.SOYADI != null)
{
return ISCISINIFI.ISCISINIFI.ISCIGUNCEL(item);
}
}
catch
{
sonuc = false;
}
return sonuc;
}
}
WİNDOWS FORMU ARAYÜZÜNÜ AYARLIYALIM.
FORM KODLARI
private void Form1_Load(object sender, EventArgs e)
{
GRDGOSTER();
}
private void GRDGOSTER()
{
List<KAPSULLEME> item = ISCISINIFI.ISCISINIFI.ISCILIST();
dataGridView1.DataSource = item;
}
private void button1_Click(object sender, EventArgs e)
{
KAPSULLEME item = new KAPSULLEME();
item.ADI = textBox1.Text;
item.SOYADI = textBox2.Text;
FILTRELEME.filtreekle(item);
GRDGOSTER();
}
private void dataGridView1_DoubleClick(object sender, EventArgs e)
{
KAPSULLEME item = new KAPSULLEME();
textBox1.Text = dataGridView1.Rows[0].Cells[1].ToString();
textBox2.Text = dataGridView1.Rows[0].Cells[2].ToString();
}
Yorum Gönder