Bir önceki yazımızda c# uygulamamızı, veritabanına nasıl bağlayacağımızı görmüştük. Bunu da sqlconnection bağlantı nesnesini kullanarak gerçekleştirmiştik. Bugün ise sqlcommand üzerinde duracağız. sqlcommand nesnesi veritabanı üzerinde sorgulama , ekleme,silme ve güncelleme işlemlerini gerçekleştirebileceğimiz connected layer için en çok kullandığımız nesnedir. Geçen yazımızda FILMS adında bir veritabanı oluşturmuştuk. Bugün ise o veritabanına bir tablo ekleyeceğiz ve bu tablodan bazı sorgulamaları command nesnesi yardımıyla gerçekleştireceğiz. Önce server explorer alındaki data connections kısmından daha önce oluşturduğumuz FILMS veritabanını genişletelim ve altındaki tables a sağ tıklayıp yeni bir tablo oluştur diyelim. Tablomuzu aşağıdaki gibi düzenleyelim.
FilmID yi primary key olarak belirleyelim ve coloumn properties ten Identity specification dan Is Identity i yes yapalım seed ve increment 1 olsun. Tablomuzu kaydedelim ve ismine ImdbTopTen diyelim. Sıra geldi tablomuza veri koymaya. Yine tables kısmından oluşturduğumuz ImdbTopTen tablosuna sağ tıklayarak show table data diyelim ve açılan sayfadan verilerimizi girelim. Ben şu şekilde girdim.
Tablomuzu doldurduktan sonra yeni bir windows forms projesi yaratalım ve formumuzn üzerine 2 tane button sürükleyelim isimleri btnExecuteScalar ve btnExecuteReader olsun. Sonra view code diyerek önce connection string imizi oluşturalım tabi “using System.Data.SqlClient;” alanını projemize dahil ettikten sonra.
SqlConnection connFilms = new SqlConnection(@”Data Source= .\SQLEXPRESS;
Initial Catalog=FILMS;Integrated Security= True”);
Sıra geldi command nesnesini oluşturmaya.
SqlCommand scalarCommand = new SqlCommand(); ile nesnemizi oluşturduktan sonra bu nesneye bazı özellikler bağlamalıyız. Örneğin CommandType ; sql komutumuzun tipini belirtir.
CommandType.Text ,kullanacağımız sql sorgusunun text olduğunu; CommandType.StoredProcedure, sql sorgusunun stored prosedür olarak yapılacağını belirtir.
scalarCommand.Connection = connFilms; commandımız connFilms bağlantısı üzerinden çalışacak.
Command nesnesine özelliklerimizi bağladıktan sonra bağlantımızı açıp Execute metodlarından birini kullanarak sorgumuzu gerçekleştirmeliyiz. Command ı execute etmek için 4 tane metodumuz var.
Bağlantıyı açıp sorgu emrini şu şekilde veriyoruz.
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 CommandOrnegi
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SqlConnection connFilms = new SqlConnection(@"Data Source= .\SQLEXPRESS;
Initial Catalog=FILMS;Integrated Security= True");
private void btnExecuteScalar_Click(object sender, EventArgs e)
{
try
{
SqlCommand scalarCommand = new SqlCommand();
scalarCommand.Connection = connFilms;
scalarCommand.CommandType = CommandType.Text;
scalarCommand.CommandText = @"Select FilmAdı from ImdbTopTen where ImdbSıra=5";
connFilms.Open();
string _filmadı = (string)scalarCommand.ExecuteScalar();
MessageBox.Show(_filmadı);
}
catch (Exception ex)
{
MessageBox.Show("eyvah! hata oluştu..");
}
finally
{
connFilms.Close();
}
}
private void btnExecuteReader_Click(object sender, EventArgs e)
{
try
{
SqlCommand readerCommand = new SqlCommand();
readerCommand.Connection = connFilms;
readerCommand.CommandType = CommandType.Text;
readerCommand.CommandText = @"select FilmAdı,IMDBSıra,Puan from ImdbTopTen";
connFilms.Open();
SqlDataReader reader = readerCommand.ExecuteReader();
string sonuc = @"Film adı IMDBSıra Puan";
while (reader.Read())
{
sonuc+=("\n"+reader["FilmAdı"].ToString() + "\t" + reader["IMDBSıra"].ToString()+ "\t"+
reader["Puan"].ToString());
}
reader.Close();;
MessageBox.Show(sonuc);
}
catch (Exception ex)
{
MessageBox.Show("eyvah! hata oluştu..");
}
finally
{
connFilms.Close();
}
}
}
}
















