Fonksiyon Dosyası Oluşturma Gereksiz Kodlardan Kurtulalım.

Kodla Büyü

noktanet

Seçkin Üye
Seçkin Üye
Mesajlar
737
Asp.net ile uğraşan arkadaşlarımın çok işine yarayacak bütün projelerinde kullabileceği fonksiyon dosyası hazırlamayı anlatacağım sizlere.
Öncelikle Fonksiyon dosyası ne işe yarar ondan bahsedeyim. fonksiyon dosyası hepimiz datatable, datarow kullanıyoruz veya veritabanına kayıt eklerken kayıt güncellerken her seferinde bir sürü kod yazmamız gerekiyor bir sürü kod fazlalığı ve zaman kaybı anlamına geliyor buda en basitinden bir kayıt eklemek için normalde

Kod:
SqlConnection verisql = new SqlConnection("Data Source=BYSCAPC\\SQLEXPRESS; Initial Catalog=ornek; Integrated Security=True");
verisql.Open();
String AdiSoyadi, OgrenciNo, Email;
AdiSoyadi = txtadisoyadi.Text;
OgrenciNo = txtogrencino.Text;
Email = txtemail.Text;
SqlCommand Cmdekle = new SqlCommand("Insert Into Ogrenciler (AdiSoyadi, OgrenciNo, Email) Values ('"+AdiSoyadi+"','"+OgrenciNo+"','"+Email+"')", verisql);
Cmdekle.ExecuteNonQuery();
bu kadar kod yazmamız gerekiyor. bu gereksiz kod kullanımının önüne geçmek amacıyla fonksiyon tanımlaması yapmamız gerekiyor.

1 - Öncelikle visual studio da projemizi sağ tıklayarak Asp.Net Folder'dan App_Code yi seçerek bi app_code klasörü oluşturalım.
2- App_Code Klasörünüde sağ tıklayarak Ass New Item i seçecerek Class dosyası ekleyelim dosya ismine istediğimiz herhangi bir ismi verebiliriz. ben Fnksyn ismini verdim.
3 - şimdi ise kullanabileceğimiz bütün işlemler için bir fonksiyon tanımlaması yacağız.
Fnksyn isminde bir class dosyası oluşturup açtığımızda aşağıdaki kodlar karşınıza gelecektir.
Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for Fnksyn
/// </summary>
public class Fnksyn
{
	public Fnksyn()
	{
		//
		// TODO: Add constructor logic here
		//
	}
       // burdan itibaren classlarımızı tanımlamaya başlayacağız.
}

4- En Basitinden başlayalım her yerde kullanabileceğimiz Bağlantı classmızı oluşturalım.
Kod:
  public SqlConnection bgln() // ben isim olarak bağlantı nesneme bgln ismini verdim siz istediğiniz herhangi bir ismi verebilirsiniz.
    {
     SqlConnection baglanti = new SqlConnection("Data Source=BYSCAPC\\SQLEXPRESS; Initial Catalog=veritabaniadi; Integrated Security=True"); // bağlantı kodumuz. 
     baglanti.Open(); // baglanti nesnesini açıyoruz.
     return (baglanti); // return ile bgln classına baglanti nesnesi return değeri olarak göndeyor.
    }
peki bunu nasıl kullanacağız. herhangi bir webform oluşturalım ve değişkenleri tanımladığımız kısma "Fnksyn system = new Fnksyn();" yazmamız gerekmektedir. bu fonksiyon tanımlamasını yaptıktan sonra fonksiyon dosyamızdaki bütün fonksiyonları kullanabiliriz. oluşturduğumuz "bgln" isimli classmızı şu şekilde kullanabiliriz.
Örnek = "SqlConnection baglanti = system.baglan();" sadece bunu yazarak bir sürü gereksiz koddan kurtulmuş oluruz.

5 - Şimdide bütün sql cümlelerimizi çalıştırabilecek bir class tanımlayalım.
Kod:
public int sqlcalistir(string sqlverisi) //burda yine istediğimiz isimleri verebiliriz.
    {

        SqlConnection baglan = this.baglan(); //yukarda oluşturduğumuz bgln fonksiyonunu kullanıyoruz.
        SqlCommand sorgu = new SqlCommand(sqlverisi, baglan); 
        int sonuc = 0;
        try
        {
             sonuc = sorgu.ExecuteNonQuery();
        }
        catch (SqlException ex)
        {
             throw new  Exception(ex.Message + " (" + sqlcumle + ") ");
        }
        sorgu.Dispose();       baglan.Close();       baglan.Dispose();       return (sonuc);
       
    }
bu fonksiyon sayesinde istediğimiz sql cümleciğini çalıştırabiliriz.
Kullanım şekli system.sqlcalistir("insert into falan filan......."); şeklinde tek satır kod ile sql cümlelerimizi çalıştırabiliriz.

arkadaşlar sıkıldım doğrusu yazarken datatable datarow ve tek hücreyi almak içinde aşağıdaki tanımlamaları yapmalısınız.
6- datatable(bütün tabloyu alma) için
Kod:
 public DataTable BenimDataTable(String sqlveri)
    {
        SqlConnection baglanti = this.bgln();

        SqlDataAdapter adapter = new SqlDataAdapter(sqlveri, baglanti);
        DataTable datatbl= new DataTable();

        try
        {
            adapter.Fill(datatbl);
        }
        catch (SqlException ex)
        {
            throw new Exception(ex.Message + " (" + sqlveri+ ") ");
        }

        adapter.Dispose();        baglanti.Close();        baglanti.Dispose();        return dt;

    }
7 - datarow(tek satır kod almak) için
Kod:
 public DataRow BenimDataRow(String sqlveri)
    {
        DataTable table = BenimDataTable(sqlveri);
        if (table.Rows.Count == 0) return null;
        return table.Rows[0];

    }
8 - datacell (sorguyla tek bir hücre almak için kullanılır.)
Kod:
public string BenimDataCell(string sql)
    {
        DataTable table = BenimDataTable(sql);
        if (table.Rows.Count == 0) return null;
        return table.Rows[0][0].ToString();

    }

arkadaşlar çok karışık oldu sanırım. yazarken benimde kafam 56 oldu sıkıntı yaşayan arkadaşlara yardımcı olurum. kolay gelsin umarım faydalı olur.
 
Re: Fonksiyon Dosyası Oluşturma

kullanım şekillerini unutmuşum :)
DataTable Örneği
DataTable dtKadro = system.BenimDataTable("select * from Personel");

DataRow Örneği
DataRow drPersonel = system.BenimDataRow("select * from Personel Where Id=3");

DataCell Örneği
string PersonelAdi = system.BenimDataCell("select PersonelAdi from Personel Where Id=3");

şeklinde hepsini kullanabiliriz. kolay gelsin.
 
Serkan hocam ve Tolga hocam paylaşımlarınız için çok teşekkürler, ben makalelerinizi sürekli takipteyim, faydalananlar mutlaka oluyordur/olacaktır.

Kolaylıklar dilerim
 
Geri
Üst