- Hakkımda
- Yayınlarım
- Verdiğim Dersler
- Güz Dönemi
- ESM203 Elektrik ve Elektronik Bilgisi
- ESM301 Enerji Üretim ve İletim
- ESM406 Elektrik Enerji Sistemlerinin Kontrolü
- ESM411 Enerji Mühendisliği Projesi
- Grafik Animasyon (RTEÜ)
- Araştırma Yöntem ve Teknikleri (RTEÜ)
- İleri Görsel Programlama (RTEÜ)
- Bilgi İletişim Teknolojileri (RTEÜ)
- Güz Dönemi Ders Programı
- Bahar Dönemi
- Güz Dönemi
- İletişim
C# ile Sql Server dan Veri Alma ve Veri Gönderme
Bu konuda ilk olarak Sql Server’a c# arayüzü ile veriyi kaydetmeyi ardından da kaydettiğimiz bu veriyi Sql Server dan c# arayüzüne getirmeyi göstereceğim.
Daha önceden hazırladığım örnek ile göstereceğim. Örnek programı aşağıda görebilirsiniz.
Program kişilerin kaydını tutmaktadır. Bunlar numarası, adı ve soyadı bilgileridir. Kaydet butonuna basıldığı zaman textboxdaki verileri kaydedecek. Göster butonuna basıldığı zaman ise datagrid de verileri gösterecek.
Kodları inceleyelim.
string ConStr=”Data Source=SAD-BILGISAYAR;Initial Catalog=proje;Integrated Security=True”; Bu satır ile sql serverda verilerin tutulacağı ilgili database’i programa tanıttık. Bu satırdaki database adresi sayesinde veriler kaydedilecekler. Data Source databese in bulunduğu bilgisayarı, Initial Catalog ise sql serverdaki ismini belirtir. Yani buradan anlaşılacağı üzere database ‘in adı sql server da proje adı ile saklanmaktadır.
şimdi C# da veri göndermeyi gösterelim.
private void btnKaydet_Click(object sender, EventArgs e)
{
SqlConnection OleCn = new SqlConnection(ConStr);
OleCn.Open();
SqlCommand Cmd = new SqlCommand();
Cmd.Connection = OleCn;
Cmd.CommandText = “spKisi”;
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.Parameters.AddWithValue(“@Adi”, txtAdi.Text);
Cmd.Parameters.AddWithValue(“@Soyadi”, txtSoyadi.Text);
Cmd.ExecuteNonQuery();
OleCn.Close();
MessageBox.Show(“Kayıt başarı bir şekild girildi”,”Kaydet”,MessageBoxButtons.OK,MessageBoxIcon.Information); }
kaydet butonuna basıldığında textboxlardaki değerler veritabanındaki ilgili yerlere kaydedilecekler.Veri tabanına veri kaydederken dikkat edilmesi gereken en önemli husus verilerin doğru kaydedilmesidir. Bu işlem için parametreler kullanırız. Parametreler veritabanına dışarıdan gelen ilgili veridir. ExecuteNonQuery ise parameters yardımıyla iletilen verilerin database de kaydedilmesini sağlar.
Stoured Procedure içindeki Sql kodlar ise aşağıdadır. Sql server da ise bu kodlar çalışır.
Create PROCEDURE [dbo].[spKisi]
@Adi nvarchar(50),
@Soyadi nvarchar(50)
AS BEGIN
insert into kisi (Adi,SoyAdi) values (@Adi,@Soyadi)
END
C# da veri çekmeise aşağıdaki gibi olmaktadır.
private void btnGoster_Click(object sender, EventArgs e)
{
SqlConnection OleCn = new SqlConnection(ConStr);
OleCn.Open();
SqlCommand Cmd = new SqlCommand();
Cmd.Connection = OleCn;
Cmd.CommandText = “spKisiGoster”;
Cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter Da = new SqlDataAdapter();
Da.SelectCommand = Cmd;
DataSet Ds = new DataSet();
Da.Fill(Ds);
dgvKisiGoster.DataSource = Ds.Tables[0];
}
Verileri veritabanından aldıktan sonra dategrid de göstermek ise yukarıdaki kod satırları ile olmaktadır. Kodları açıklarsak. ilk 6 satır ile veritabanına bağlandık ve yapılacak işlemin procedure ile yapılacağını belirttik. DataAdapter ile ise program ile sql serverdaki database arasında bir bağlantı oluşturduk. Dataset ile de gelen verileri c# arayüzünde saklanması sağlanıldı. Daha sonra son satır ile de datagrid de verilerin gösterilmesi sağlanıldı.
Sql Server tarafındaki Procedure de çalışan Sql kodları.
Create PROCEDURE [dbo].[spKisiGoster]
AS
BEGIN
SELECT * from kisi
END
Uygulamanın c# ve sql server dosyalarını indirerek kendi bilgisayarınızda deneyebilirsiniz.
C# gerçeklenmiş program:
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 SqlBaglanti { public partial class Form1 : Form { public Form1() { InitializeComponent(); } string ConStr="Data Source=SAD-BILGISAYAR;Initial Catalog=proje;Integrated Security=True"; private void btnKaydet_Click(object sender, EventArgs e) { SqlConnection OleCn = new SqlConnection(ConStr); //veritabanında bağlanılacak olan adres OleCn.Open(); //veritabanı bağlantısını açtım. SqlCommand Cmd = new SqlCommand(); Cmd.Connection = OleCn; Cmd.CommandText = "spKisi"; //stoured procedure'un saklandığı yer. Cmd.CommandType = CommandType.StoredProcedure; //bağlantı tipi stoured procedure olarak ayarlandı. Cmd.Parameters.AddWithValue("@Adi", txtAdi.Text); //@Adi parametresi gösterldi. Cmd.Parameters.AddWithValue("@Soyadi", txtSoyadi.Text); //@SoyAdi paremetresi gönderildi. Cmd.ExecuteNonQuery(); // veriler veritabanında kaydedildi. OleCn.Close(); MessageBox.Show("Kayıt başarı bir şekilde girildi","Kaydet",MessageBoxButtons.OK,MessageBoxIcon.Information); } private void btnGoster_Click(object sender, EventArgs e) { SqlConnection OleCn = new SqlConnection(ConStr); OleCn.Open(); SqlCommand Cmd = new SqlCommand(); Cmd.Connection = OleCn; Cmd.CommandText = "spKisiGoster"; //stoured procedure'un saklandığı yer. Cmd.CommandType = CommandType.StoredProcedure; //bağlantı tipi stoured procedure olarak ayarlandı. SqlDataAdapter Da = new SqlDataAdapter(); //data adapter bağlantısı başlatıldı. Da.SelectCommand = Cmd; //bağlantı türü select olarak seçildi. DataSet Ds = new DataSet(); Da.Fill(Ds); //data adabter dan gelen veriler datasette kaydedildi. dgvKisiGoster.DataSource = Ds.Tables[0]; //datagrid de gösterilmesi sağlanıldı. } } }
Uygulamayı indirmek için Tıklayın
