C# ile SQL Server Veritabanına Ekleme, Silme, Güncelleme

Bu yazımızda C# ile SQL Server Veritabanına Ekleme, Silme, Güncelleme işlemlerini inceleyeceğiz. Önce SQL Server Management Studio'yu açarak veritabanı oluşturunuz. Bu yazımızda SQL Server ile Veritabanı oluşturma adımlarına değinmeyeceğiz, SQL komutlarını da anlatmayacağız. SQL Server bölümünden ilgili anlarımları inceleyebilirsiniz.

Microsoft SQL Server'da sirket isimli bir veritabanı oluşturup  içinde musteriID, ADI, SOYADI, EPOSTA, TELEFON alanlarından oluşan bir tblmusteri tablosu oluşturunuz. Burada musteriID alanı INTEGER yani tam sayı tipinde, diğer alanları VARCHAR(50) yapabilirsiniz.



Burada metin  kutularına (TextBox nesnelerine) sırasıyla txtID, txtAdi, txtSoyadi, txtTelefon, txtEposta isimlerini verdik. Butonlara ise sırasıyla soldan sağa btnYeni, btnKaydet, btnDuzelt, btnSil, btnListele isimlerini verdik. DataGridView nesnemizin ismi de DataGridView1  olarak bırakıldı. 



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
//Veritabanı bağlantısı için aşağıdaki namespace'ler gerekli
using System.Data;  //SQL Server Veritabanı Bağlantısı için gerekli
using System.Data.SqlClient;  //SQL Server Veritabanı Bağlantısı için gerekli
 
namespace Veritabani_Musteri
{
    public partial class Form1 : Form
    {
        string baglantiStr;
        SqlConnection baglanti;
        SqlCommand komut;
        SqlDataAdapter adaptor;

//Veritabanına bağlantı sağlayan metod, burada Data Source kısmında nokta(.) konmuştur, veritabanı yerel bilgisayarda değilse IP adresi yazılmalıdır.  Ayrıca Microsoft SQL Server Management  Studio'da Object Explorer penceresinde yazan ismi kullanabilirsiniz. Aşağıda görüldüğü gibi bende DEVELOPERBIL yazıyor, nokta yerine onu da kullanabilirim.




 
        public void veritabaniBaglan(){
            try
            {
                baglantiStr = @"Data Source=.;Initial Catalog=sirket;Trusted_Connection=True;";
                baglanti = new SqlConnection(baglantiStr);
                if (baglanti.State == ConnectionState.Open)
                    baglanti.Close();
                baglanti.Open();
            }
            catch
            {
                MessageBox.Show("Veritabanına bağlantı kurulamadı");
            }
           
        }

//SQL Ekleme, Silme, Güncelleme kodlarını çalıştıran metod
        private void SQLCalistir(string sql, string islem)
        {
            
           veritabaniBaglan(); 
             
            komut = new SqlCommand(sql, baglanti);
            try
            {
                komut.ExecuteNonQuery();
                MessageBox.Show(islem + " işlemi başarıyla gerçekleşti");
            }
            catch (SqlException hata)
            {
                MessageBox.Show(hata.Message.ToString());
            }
        }  
 
 
        public Form1()
        {
            InitializeComponent();
        }
 
//Kayıt Ekle butonuna tıklayınca ekleyen metod
        private void btnEkle_Click(object sender, EventArgs e)
        {
            string adi, soyadi, telefon, eposta;
            adi= txtAdi.Text;
            soyadi = txtSoyadi.Text;
            telefon = txtTelefon.Text;
            eposta = txtEposta.Text;
 
            string sql ="INSERT INTO tblmusteri(ADI, SOYADI, EPOSTA, TELEFON)"+
                  " VALUES('"+adi+"','"+soyadi+"','"+telefon+"','"+eposta+"')";
           // MessageBox.Show(sql); 
            SQLCalistir(sql, "Ekleme");
            verileriGetir();
        }

//DataGridView nesnesinin içeriğini güncelleyen metod
        public void verileriGetir()
        {
            veritabaniBaglan();
            DataTable dt = new DataTable();
            adaptor = new SqlDataAdapter("SELECT * FROM tblmusteri", baglanti);
            adaptor.Fill(dt);
            dataGridView1.DataSource = dt;
            baglanti.Close();
        }

//Listele butonuna tıklayınca DataGridView nesnesi içeriği yenileniyor
        private void btnListele_Click(object sender, EventArgs e)
        {
            verileriGetir(); //Yenile
        }

//Sil butonuna tıklayınca çalışan metod
        private void btnSil_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedCells.Count > 0)
            {
                int secilenIndeks = dataGridView1.SelectedCells[0].RowIndex;
                DataGridViewRow secilenSatir = dataGridView1.Rows[secilenIndeks];
                string silinecek = Convert.ToString(secilenSatir.Cells["musteriID"].Value);
                //MessageBox.Show(silinecek);
                string sql = "DELETE FROM tblmusteri WHERE musteriID=" + silinecek;
                SQLCalistir(sql, "Silme");
                verileriGetir();
            }
        }
 
     
//Kayıt düzelmek için DataGridView içinde ilgili satır seçilince metin kutularına aktarılıyor
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int secilenIndeks = dataGridView1.SelectedCells[0].RowIndex;
            DataGridViewRow secilenSatir = dataGridView1.Rows[secilenIndeks];
            txtAdi.Text = Convert.ToString(secilenSatir.Cells["ADI"].Value);
            txtSoyadi.Text = Convert.ToString(secilenSatir.Cells["SOYADI"].Value);
            txtEposta.Text = Convert.ToString(secilenSatir.Cells["EPOSTA"].Value);
            txtTelefon.Text = Convert.ToString(secilenSatir.Cells["TELEFON"].Value);
            txtID.Text = Convert.ToString(secilenSatir.Cells["musteriID"].Value);
        }
 
     //Form ilk açılınca DataGridView içeriği gösteriliyor
        private void Form1_Load(object sender, EventArgs e)
        {
            verileriGetir();
        }

//Düzelt butonuna tıklayınca UPDATE SQL ile güncelleme yapılıyor
        private void btnDuzelt_Click(object sender, EventArgs e)
        {
            string adi, soyadi, telefon, eposta, ID;
            adi= txtAdi.Text;
            soyadi = txtSoyadi.Text;
            telefon = txtTelefon.Text;
            eposta = txtEposta.Text;
            ID = txtID.Text;
            if (ID != "")
            {
                string sql = "UPDATE tblmusteri set " +
                 "ADI='" + adi + "', SOYADI='" + soyadi + "',TELEFON='" + telefon + "'," +
                "EPOSTA='" + eposta + "' WHERE musteriID=" + ID;
                SQLCalistir(sql, "Düzeltme");
                verileriGetir();
            }
            else
            {
                MessageBox.Show("Lütfen düzeltilecek kaydı seçiniz");
 
            }
           
        }

//Yeni kayıt eklenirken metin kutularının boşaltılması gerekiyor
        private void btnBosalt_Click(object sender, EventArgs e)
        {
            txtAdi.Text = "";
            txtSoyadi.Text = "";
            txtTelefon.Text = "";
            txtEposta.Text = "";
            txtID.Text = "";
 
        }
    }
}

Bu yazımızda SQL Server veritabanına C# Formlar üzerinden Ekleme, Silme, Güncelleme ve DataGridView nesnesi üzerinde kayıtları listeleme işlemini inceledik. Bu kodları anlamak için C# bölümündeki örneklei incelemeli SQL Komutlarını tam olarak anlamalısınız. İlgili bölümlere bakabilirsiniz, hepsini anlattım.

Mutlu kodlamalar,
Oğuzhan TAŞ
Mayıs 2022

Bookmark and Share