Makale Özeti

Sanal ortamda ADO.NET konusu hakkında bir çok makale ve içerik pdfleri vardır.Yazılıma yeni başlamış veya ilerleme kayderken ADO.NET araştırmalarında, makaleler hep arayan için istenileni veremeyebilir veya şöle değinecek olursam konularda seri, anlaşılır, akıcı bir anlatım yeni başlayanlar için yoktur.C# ararken VB hakkında makale bulunmuş olabilir.Yazgeliştir.com / ADO.NET Kategorisi olarak C# ile tekrardan baştan sonra ADO.NET'i part part inceliyoruz....

Makale

VERİ ERİŞİMİ İÇİN ADO. Net’in C# İLE İNCELENMESİ

ADO.NET ( Activex Data Object)


Bir çok programlama dilinde  arka planda çalışan ADO(Activex Data Object)dir.ADO.NET uygulamalarımızda veri kullanmamızı kolaylaştıran .Net Framework sınıf kütüphanelerindendir.ADO.NET baştanda belirttiğim gibi başka programlama dillerinde de kullanılması için Microsoft tarafından bütün database bağlantı uygulamalarının birbirleriyle  entegrasyonunu yaparak nesneler şeklinde paketlenmiş halidir.
ADO.NET içerisindeki sınıflar, altyapının ve veritabanına özgü karmaşık işlemlerin çoğunu yönetir.Böylece bu da yazılımcıların geliştirdikleri programlarda, veri okuma ve yazmada daha az kod kullanmaları yeterli olacaktır.ADO.NET bir dil değil sadece yaygın işlevselliği sağlayan bir sınıf derlemesidir.
Arkadaşlar Ado.Net yapısını tüm veritabanlarına bağlantı  ile ilişki kurmada kullabiliriz.

Uygulama ve Database kullanımındaki nesneler;

*     C# SQl Server Connection 
*     OLEDB Connection 
*     ODBC Connection 
*     Command 
*      SqlCommand - ExecuteNonQuery 
*     OleDbCommand - ExecuteNonQuery 
*     SqlCommand - ExecuteScalar 
*     OleDbCommand - ExecuteScalar 
*     SqlCommand - ExecuteReader 
*     OleDbCommand - ExecuteReader 
*     DataReader 
*     SqlDataReader
*     OleDbDataReader 
*     Multiple Result Sets 
*     Table Schema from SqlDataReader 
*     Table Schema from OleDbDataReader 
*     DataAdapter 
*     SqlDataAdapter 
*     OleDbDataAdapter 

SQL Connection 

Arkadaşlar tanımlarla Ado.Net’i öğrenmek kolay değildir.Yazarken nesneleri ve terimler öğrenebiliriz.Ben bu yüzden tanım yapmadan kodlarımı yazacağım.Kodlar daha akıldı kalıcı olsun diye yanlarına kısa kısa yazacağım.

Bağlantı kurmamız için öncelike namespace olarak  “using System.Data.SqlClients” kullanmak zorundayız.Çünkü ADO.NET nesnelerimiz bu namespace referansından gelmektedir.
Uygulamada  SQL Managment stüdyodan bağlantı sağlamayı yaptığım bir uygulama ile gerçekleştireceğiz.

______________________________________________________

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;//Sql server a için kullanıalcak nesneler bu namespace altında

namespace AdoIntro
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

        private void rbdSqlAuth_CheckedChanged(object sender, EventArgs e)
{
txtLogin.Enabled = txtPassword.Enabled = rbdSqlAuth.Checked;
}

        SqlConnection conn = null;
private void btnBaglan_Click(object sender, EventArgs e)
{
//server=.;database=Northwind;
string connStr = "server="+txtSunucu.Text+";database="+txtVeritabani.Text+";";

            if (rdbWinAuth.Checked)//windows authentication ile doğrulanacak
{
//aşağıdakileri windows doğrulaması için yazılabilir
//trusted_connection=true/SSPI
connStr += "integrated security=true";
}
else
{
connStr += "uId=" + txtLogin.Text + ";pwd=" + txtPassword.Text;
}

            conn = new SqlConnection(connStr);//SqlConnection uygulama le sql birbirine bağlayan nesne

            try
{
conn.Open();
MessageBox.Show("Bağlantı kuruldu...");
}
catch (Exception)
{
MessageBox.Show("Bağlantı kurulamadı...");
}

        }
}
}

______________________________________________________


Yaptığımız programı kontrol edelim ki makaleyi okuyan arkadaşlar hem kontrolü görün hemde programın  sağlamasını yapalım.Bunun için SQL server profiler’e girelim ve burdan file / new trace / run çalıştıralım.Bağlatımızı kurduğumuzda açılan trace’de program yapılanmısın ve login olduğunuzu belirtcektir.

SQL Command

Command nesnesi ADO.NET SQL ifadeleri ve veri kaynağı C # Bağlantı Nesnesi belirtilen karşı procedure  ve içine yazdığımız T-SQL ifadeyi çalıştırır. Command Object SQL deyimlerini çalıştırmak için bir C# Bağlantı Nesne bir örneği gerektirir.Veri Kaynağı karşı bir SQL deyimi yürütmek için öncelikle bir Connection Nesnesi oluşturmalıyız.Command nesnesinin bağlantı özelliğine açık bağlantı belirlemektir. Sonra Command Object SQL deyimlerini çalıştırabilirsiniz. SQL deyiminin yürütülmesine sonra Command Object sonucu verecektir. DataReader kullanarak sorgudaki dataları alırız..Command Object Data Source karşı yürütülür komut temsil eden bir dize değeri içeren bir özellik CommandText’e sahiptir. CommandType StoredProcedure olarak ayarlandığında, sproc yazmalıyız ve sproc’un adını Text’e vermeyliz.
Ben ilk örneğimde direk command’a yazdık sorgumuzu.
______________________________________________________

SqlConnection conn = new SqlConnection("server=.;database=Northwind;integrated security=True");

        void KategorileriGetir()
{
//çalıştırmak istediğimiz Komutu oluşturduk
SqlCommand cmd = new SqlCommand("select CategoryName from Categories",conn);
if (cmd.Connection.State == ConnectionState.Closed)
cmd.Connection.Open();

            //Komutu çalıştır ortalığı veri okuyucuya bırak
SqlDataReader dr = cmd.ExecuteReader();//Komutu çalıştırmak için ExecuteReader.Sadece select sorgularda yazarız.

            while (dr.Read())// reader okuma yaptığı sürece döngüyü sağla
{
// herbir dönüş bir satır okuduğu anlamına gelir
string kategoriAdi = dr.GetString(0);
lstPersoneller.Items.Add(kategoriAdi);
}
dr.Close();
cmd.Connection.Close();

        }

        private void Form1_Load(object sender, EventArgs e)
{
KategorileriGetir();
}
}
______________________________________________________

Programımızda ListBox’a Northwind databasindeki Categories tablosundaki dataları alıyoruz.
ExecuteReader
C # SqlCommand Nesnesi Connection Nesnesi için SQL deyimlerini gönderir ve SqlDataReader Nesnesine SQL deyimlerini taşır. SqlCommand Nesnesi içinde ExecuteReader yöntemi SqlClient.SqlDataReader objectsinin instance olacaktır.

SqlDataReader Nesne bir nesne tabanlı, veri okuyucudur.Veri ekleme, güncelleme silme işlemlerini DataReader ile yapamayız.

DataReader ile  databaseimizdeki verileri teker teker alır ve uygulamaya getirir.Read only, Forward Only deriz her zaman okuma ve ileri doğru okumadır.
Arkadaşlar bugüne kadar makale niteliğinde pek fazla bir şey yazmadım.Bunu en kısa zamanda diğer makaleleri standart bir hale getirip yazacağım.
Sıradaki Konu:
C# ExecuteNonQuery
C# ExecuteScalar
DataAdapter

Görüşmek üzere,
Saygılarıma...

Yusuf KARAOĞLAN
yusufkaraoglan@gmail.com
yusufkaraoglan.com