📅 21 Mayıs 2026, Perşembe
📚 Ders Kitapları ✉ İletişim
@ydiner.gen.tr İlköğretim & Lise Düzeyi Kaynak Site "Bilgi paylaştıkça çoğalır"
🏠 Ana Sayfa
  • 🧊 3D Tasarım
  • Animasyon
  • ⚡ Arduino
  • 📌 Genel
  • 🎨 Grafik
  • Pardus
  • 💻 Programlama
  • Robotik ve Kodlama
  • 🗄️ SQL
  • 🌐 Web Tasarım
  • 🤖 Yapay Zeka
  • Genel

    kütüphane cvp

    21 Mayıs 2026 aydiner

    — 1. Veritabanı Oluşturma
    CREATE DATABASE KutuphaneDB;
    GO

    USE KutuphaneDB;
    GO

    — 2. Tablo Oluşturma
    CREATE TABLE Kitaplar (
    KitapID INT IDENTITY(1,1) PRIMARY KEY,
    KitapAdi NVARCHAR(100) NOT NULL,
    Yazar NVARCHAR(50) NOT NULL,
    SayfaSayisi INT,
    YayinEvi NVARCHAR(50)
    );

    using System;
    using System.Data;
    using System.Windows.Forms;
    using System.Data.SqlClient; // SQL Bağlantısı için gerekli kütüphane

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

    // Bağlantı cümlesi (Server ismi laboratuvardaki bilgisayarlara göre güncellenmelidir)
    SqlConnection baglanti = new SqlConnection(“Data Source=.;Initial Catalog=KutuphaneDB;Integrated Security=True”);

    // 1. Listeleme Fonksiyonu
    void KitapListele()
    {
    try
    {
    baglanti.Open();
    SqlDataAdapter da = new SqlDataAdapter(“SELECT * FROM Kitaplar”, baglanti);
    DataTable dt = new DataTable();
    da.Fill(dt);
    dgvKitaplar.DataSource = dt;
    }
    catch (Exception hata)
    {
    MessageBox.Show(“Hata oluştu: ” + hata.Message);
    }
    finally
    {
    baglanti.Close();
    }
    }

    // Form açıldığında listeleme tetiklenir
    private void Form1_Load(object sender, EventArgs e)
    {
    KitapListele();
    }

    // 2. Kaydetme Butonu
    private void btnKaydet_Click(object sender, EventArgs e)
    {
    try
    {
    baglanti.Open();
    string sorgu = “INSERT INTO Kitaplar (KitapAdi, Yazar, SayfaSayisi, YayinEvi) VALUES (@p1, @p2, @p3, @p4)”;
    SqlCommand komut = new SqlCommand(sorgu, baglanti);

    komut.Parameters.AddWithValue(“@p1”, txtKitapAdi.Text);
    komut.Parameters.AddWithValue(“@p2”, txtYazar.Text);
    komut.Parameters.AddWithValue(“@p3”, Convert.ToInt32(txtSayfaSayisi.Text));
    komut.Parameters.AddWithValue(“@p4”, txtYayinEvi.Text);

    komut.ExecuteNonQuery();
    MessageBox.Show(“Kitap başarıyla kaydedildi.”);
    }
    catch (Exception hata)
    {
    MessageBox.Show(“Kayıt hatası: ” + hata.Message);
    }
    finally
    {
    baglanti.Close();
    KitapListele(); // Listeyi güncelle
    }
    }

    // 3. Silme Butonu
    private void btnSil_Click(object sender, EventArgs e)
    {
    if (dgvKitaplar.SelectedRows.Count > 0)
    {
    try
    {
    baglanti.Open();
    string sorgu = “DELETE FROM Kitaplar WHERE KitapID = @id”;
    SqlCommand komut = new SqlCommand(sorgu, baglanti);

    // DataGridView’de seçili satırın ilk hücresindeki (KitapID) değerini alır
    int secilenId = Convert.ToInt32(dgvKitaplar.SelectedRows[0].Cells[“KitapID”].Value);
    komut.Parameters.AddWithValue(“@id”, secilenId);

    komut.ExecuteNonQuery();
    MessageBox.Show(“Kitap başarıyla silindi.”);
    }
    catch (Exception hata)
    {
    MessageBox.Show(“Silme hatası: ” + hata.Message);
    }
    finally
    {
    baglanti.Close();
    KitapListele(); // Listeyi güncelle
    }
    }
    else
    {
    MessageBox.Show(“Lütfen silmek istediğiniz satırı DataGridView üzerinden seçin!”);
    }
    }
    }
    }