Kendim şöyle bir kodlama prensibiyle gidiyorum sizce yol/mantık nasıl ?
Bu ana formum
private void btnKaydet_Click(object sender, EventArgs e)
{
veritabani = new Veritabani();
veritabani.Baslat(true);
veritabani.Sorgu = "INSERT INTO TEST_MUSTERILER(adi,bakiye) VALUES('" + txtAd.Text + "'," + txtBakiye.Text + ")";
if (veritabani.Calistir())
{
veritabani.Uygula();
this.Text = "İşlem Başarılı , Kayıt SAyısı =" + veritabani.IslemSatirSayisi;
}
else
{
veritabani.GeriAl();
this.Text = "İşlem Başarısız";
}
veritabani.Bitir();
}
Bu Veritabanı classım
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace DB_OOP_v1
{
class Veritabani
{
string baglantiYolu = baglantiYolum
string sorgu;
public string Sorgu
{
get { return sorgu; }
set { sorgu = value; }
}
SqlConnection baglanti;
SqlDataAdapter dAdap;
SqlCommand komut;
SqlTransaction transaction;
DataTable tablo;
int islemSatirSayisi;
public int IslemSatirSayisi
{
get { return islemSatirSayisi; }
set { islemSatirSayisi = value; }
}
public DataTable Tablo
{
get { return tablo; }
set { tablo = value; }
}
bool isTransaction = false;
public void Baslat(bool _isTransaction)
{
isTransaction = _isTransaction;
try
{
baglanti = new SqlConnection(baglantiYolu);
baglanti.Open();
komut = new SqlCommand();
komut.Connection = baglanti;
if (isTransaction)
{
transaction = baglanti.BeginTransaction();
komut.Transaction = transaction;
}
}
catch (Exception ex)
{
Logger.LogTut(ex.ToString(), "SQL");
}
}
public void Uygula()
{
try
{
if (baglanti.State == ConnectionState.Open && isTransaction)
{
transaction.Commit();
}
}
catch (Exception ex)
{
Logger.LogTut(ex.ToString(), "SQL");
}
}
public void GeriAl()
{
try
{
if (isTransaction)
{
transaction.Rollback();
}
}
catch (Exception ex)
{
Logger.LogTut(ex.ToString(), "SQL");
}
}
public bool Calistir()
{
try
{
if (baglanti.State == ConnectionState.Open)
{
komut.CommandText = sorgu;
islemSatirSayisi = komut.ExecuteNonQuery();
if (islemSatirSayisi > 0)
return true;
else
return false;
}
else
{
return false;
}
}
catch (Exception ex)
{
Logger.LogTut(ex.ToString(), "SQL");
return false;
}
}
public void Getir()
{
try
{
if (baglanti.State == ConnectionState.Open)
{
if (!isTransaction)
{
dAdap = new SqlDataAdapter(sorgu, baglanti);
}
else
{
komut.CommandText = sorgu;
dAdap = new SqlDataAdapter();
dAdap.SelectCommand = komut;
}
tablo = new DataTable();
dAdap.Fill(tablo);
}
}
catch (Exception ex)
{
Logger.LogTut(ex.ToString(), "SQL");
}
}
public void Bitir()
{
try
{
if (baglanti.State == ConnectionState.Open)
{
baglanti.Close();
}
}
catch (Exception ex)
{
Logger.LogTut(ex.ToString(), "SQL");
}
}
}
}
Bu da log classım
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Data.SqlClient;
namespace DB_OOP_v1
{
class Logger
{
static public void LogTut(string hataMetni,string hataTuru)
{
try
{
int islemSayisi = 0;
DateTime tarih = DateTime.Now;
try
{
string baglantiYolu = baglantiYolum
string sorgu = "";
SqlConnection baglanti;
SqlCommand komut;
baglanti = new SqlConnection(baglantiYolu);
baglanti.Open();
sorgu = "INSERT INTO TEST_HATALAR(tarih,hata_turu,hata_metni) VALUES('"+tarih.Year.ToString()+"."+tarih.Month.ToString()+"."+tarih.Day.ToString()+" "+tarih.ToShortTimeString()+"','" + hataTuru + "','" + hataMetni.Replace("'"," ") + "')";
komut = new SqlCommand(sorgu, baglanti);
islemSayisi = komut.ExecuteNonQuery();
baglanti.Close();
}
catch
{
}
if (islemSayisi == 0)
{
string dosyaYolu = "LOGS";
Directory.CreateDirectory(dosyaYolu);
dosyaYolu += "\\" + tarih.Year.ToString().PadLeft(4, '0') + "_" + tarih.Month.ToString().PadLeft(2, '0') + "_" + tarih.Day.ToString().PadLeft(2, '0') + "_ERROR_FILE.TXT";
StreamWriter yazici = new StreamWriter(dosyaYolu, true);
string logMetni = "HATA TÜRÜ = " + hataTuru + Environment.NewLine;
logMetni += "TARİH = " + tarih.ToString() + Environment.NewLine;
logMetni += "HATA = " + hataMetni + Environment.NewLine;
logMetni += "========================================================================================" + Environment.NewLine;
yazici.Write(logMetni);
yazici.Close();
}
}
catch
{
}
}
}
}