SqlDataReader
Merhaba arkadaşlar. Bu makalemizde SqlDataReader ile ilgili bir uygulama yapacağız. Uygulamamıza geçmeden önce SqlDataReader ile ilgili kısa bilgi verelim. DataReader sınıfı ile daha çok, küçük boyutlardaki veri kümelerinin gösterimi sağlanmaktadır.

Şekil 1
Şekil 2
DataReader sınıfı ile bellekteki sadece bir veri satırına erişebiliriz. Bu durum haliyle performansı ve hızı artıran bir durumdur. Bu erişimi elde etmek için sürekli açık bir sunucu bağlantısı ve verileri getirecek SqlCommand nesnesi gereklidir. SqlDataReader nesnesi sürekli açık bir sunucu bağlantısı istediği için network trafiğini meşgul eder ve SqlConnection nesnesinin başka işlemlerde kullanılmasını engeller. Bu nedenle sadece okuma amaçlı veya listeleme amaçlı ve yalnız okunabilir veri kümeleri için önerilir.
Aşağıdaki örnekte SqlCommand sınıfına ait ExecuteReader özelliğinden yararlanacağız. ExecuteReader ın aldığı CommandBehavior.SingleRow değeri ile, tek bir satır için değer döndürmesi yapılmaktadır.
Şekil 1

Form1.cs
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;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
SqlConnection baglan = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\uyeliste.mdf;Integrated Security=True;User Instance=True");
SqlCommand komut = new SqlCommand("Select * From liste",baglan);
SqlDataReader dr;
baglan.Open();
//Tek satırlık işlem yapacağız.
//Bunun için SingleRow seçiyoruz.
dr = komut.ExecuteReader(CommandBehavior.SingleRow);
dr.Read();
//Döngümüzü tablomuzdaki alan sayısı kadar döndürüyoruz.
for (int i = 0; i <>
{
//Satırdaki sütun adı ve satırdaki değerini listbox a ekliyoruz.
listBox1.Items.Add(dr.GetName(i).ToString() + " - " + dr[i].ToString());
}
dr.Close();
baglan.Close();
}
}
}
0 yorum: