Ana içeriğe atla

C# Delete


//using System.Data.SqlClient;

//Yeni Güncelleme geldi

//Araçlar>NuGet Paket Yöneticisi>Paket yöneticisi Konsole

//Install-Package Microsoft.Data.SqlClient

//Kodu Yapıştırdık

//using System.Data.SqlClient;  Microsoft.Data.SqlClient şeklinde değiştir ve Sorun Çözüldü

//Problem SqlConnection bağlantısının altı ve üzeri çizili idi yeni version 9 geldiği için yukarıdaki değişiklikler yapıldı


using Microsoft.Data.SqlClient;


namespace Update

{

    public partial class Form1 : Form

    {

        SqlConnection sqlBaglanti = new SqlConnection(@"Data Source=DESKTOP-0B1GIRL\SQLEXPRESS;Initial Catalog=TestVT;Integrated Security=True;TrustServerCertificate=True");


        public Form1()

        {

            InitializeComponent();

        }

        //Güncelleme İşlemi

        private void button1_Click(object sender, EventArgs e)

        {

            // TextBox'ların boş olup olmadığını kontrol et

            /*             

            Eğer textBox'lar boşsa, sorgu çalıştırılmadan önce bu durumu kontrol ederek kullanıcıya bilgi verebilir ve gereksiz hata mesajlarının önüne geçilebilir.

            catch bloğu yalnızca SQL bağlantısı ya da sorgu ile ilgili hataları ele almalı.

            Boş alan kontrolünü try bloğuna girmeden önce yapılmalı             

             */

            if (string.IsNullOrWhiteSpace(textBox1.Text) ||

                string.IsNullOrWhiteSpace(textBox2.Text) ||

                string.IsNullOrWhiteSpace(textBox3.Text) ||

                string.IsNullOrWhiteSpace(textBox4.Text))

            {

                MessageBox.Show("Lütfen tüm alanları doldurun!");

                return; // Eğer bir alan boşsa, işlemi durdur.

            }

            try

            {

                // Bağlantıyı aç

                sqlBaglanti.Open();


                // UPDATE sorgusunu oluştur

                string updateQuery = "UPDATE Personel SET Ad = @p1, Soyad = @p2, Adres = @p3 WHERE PersonelNo = @p4";


                // SqlCommand nesnesi oluştur

                SqlCommand sqlCommand = new SqlCommand(updateQuery, sqlBaglanti);


                // Parametreleri ekle (Değerleri TextBox'lardan alıyoruz)

                sqlCommand.Parameters.AddWithValue("@p1", textBox2.Text.Trim()); // Ad

                sqlCommand.Parameters.AddWithValue("@p2", textBox3.Text.Trim()); // Soyad

                sqlCommand.Parameters.AddWithValue("@p3", textBox4.Text.Trim()); // Adres

                sqlCommand.Parameters.AddWithValue("@p4", textBox1.Text.Trim()); // Güncellenecek PersonelNo


                // Sorguyu çalıştır

                int etkilenenSatirlar = sqlCommand.ExecuteNonQuery();


                // Sonuç mesajı

                if (etkilenenSatirlar > 0)

                {

                    MessageBox.Show("Kayıt başarıyla güncellendi!");

                }

                else

                {

                    MessageBox.Show("Hiçbir kayıt güncellenmedi.");

                }

                //Text Boxların Temizlenmesi

                textBox1.Clear();

                textBox2.Clear();

                textBox3.Clear();

                textBox4.Clear();

            }

            catch (Exception ex)

            {

                // Hata mesajı

                MessageBox.Show("Hata: " + ex.Message);

            }

            finally

            {

                // Bağlantıyı kapat

                if (sqlBaglanti.State == System.Data.ConnectionState.Open)

                {

                    sqlBaglanti.Close();

                }

            }

        }

        //SİLME İŞLEMİ

        private void button2_Click(object sender, EventArgs e)

        {

            try

            {

                // Bağlantıyı aç

                sqlBaglanti.Open();


                // DELETE sorgusunu oluştur

                //SQL Sorgusu: DELETE FROM ile tabloyu hedefleyerek kayıtları silersiniz.

                //SET ifadesi bu sorguda kullanılmaz.

                //Parametre Kullanımı: @p4 parametresini textBox5.Text.Trim() ile bağlayarak

                //SQL enjeksiyonuna karşı bir güvenlik sağlıyoruz.

                string updateQuery = "DELETE Personel WHERE PersonelNo = @p4";


                // SqlCommand nesnesi oluştur

                SqlCommand sqlCommand = new SqlCommand(updateQuery, sqlBaglanti);

                                

                sqlCommand.Parameters.AddWithValue("@p4", textBox5.Text.Trim());


                // Sorguyu çalıştır

                int etkilenenSatirlar = sqlCommand.ExecuteNonQuery();


                // Sonuç mesajı

                if (etkilenenSatirlar > 0)

                {

                    MessageBox.Show("Kayıt başarıyla Silindi!");

                }

                else

                {

                    MessageBox.Show("Hiçbir kayıt Silinmedi.");

                }

                //Text Boxların Temizlenmesi                

                textBox5.Clear();

            }

            catch (Exception ex)

            {

                // Hata mesajı

                MessageBox.Show("Hata: DELETE İşlemi Sırasında bir Hata Oluştu " + ex.Message);

            }

            finally

            {

                // Bağlantıyı kapat

                //Bağlantı Yönetimi: finally bloğunda bağlantının açık olup olmadığını kontrol ederek kapatmanız,

                //kaynakların doğru şekilde serbest bırakılmasını sağlar.

                if (sqlBaglanti.State == System.Data.ConnectionState.Open)

                {

                    sqlBaglanti.Close();

                }

            }


        }

    }

}


#SQL Görünümü:




#SQL Silme İşlemi 15 Nolu Personel:





C# Forms ve ADO.NET ile SQL Server 2022'de SQLConnection bağlantısı ile INSERT blogu için;

 INSERT  tıklayınız. 

Update blogu için;

 C# Update tıklayınız.

Yorumlar

Bu blogdaki popüler yayınlar

FOREGIN KEY ve INNER JOIN ile ilişkili tablo oluşturma Örneği

--1)DataBase oluşturma Sorgusu --CREATE DATABASE Join_Alistirma; --GO --USE Join_Alistirma; --GO --2)musteri Tablosu oluşturma --CREATE TABLE musteri ( --    musteri_ID INT IDENTITY(1,1) PRIMARY KEY, --    adi_soyadi NVARCHAR(100) NOT NULL, --    telefon NVARCHAR(20) NOT NULL --); ---3)araclar Tablosunu Oluştur (FOREIGN KEY ile) --CREATE TABLE araclar ( --    id INT IDENTITY(1,1) PRIMARY KEY, --    musteri_ID INT NOT NULL, --    plaka NVARCHAR(20) NOT NULL, --    marka NVARCHAR(50), --    model NVARCHAR(50), --    yil INT, --    FOREIGN KEY (musteri_ID) REFERENCES musteri(musteri_ID) --); ----------------------------------------------------------------------------- ----NOT  --musteri_ID → musteri tablosuyla bağlantılı olacak. --plaka, marka, model, yil alanları araç bilgilerini tutacak. ----------------------------------------------------------------------------- ---4)Tablolara muste...

İD ye göre işlemler C# ve Class örnekleri ile Birlikte

***************************************************************************** ✅ DbHelper.cs adında bir sınıf ile Insert , Update , Delete , GetId , SelectAll işlemlerini kolayca yapabilirsiniz. ✅ SCOPE_IDENTITY() kullanarak son eklenen kaydın ID’sini çekme örneği var. ✅ Bu ID’yi Label veya TextBox ’a yazdırabilir, Update veya Delete için tekrar kullanabilirsiniz. ✅ DataGridView ile tüm verileri listeleme örneği de dahil. *****************************************************************************  // ✅ DbHelper.cs using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; public static class DbHelper {     private static string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=YourDatabase;Integrated Security=True";     public static object InsertAndGetId(string query, Dictionary<string, string> parameters)     {         using (SqlConnection connection = new SqlConne...

INNER JOIN Silme İşleminde REFERANCE Hatası

 SQL 'de INNER JOIN için ben diagram kullandım ama silme işlemleri için bu hataya yol açtı kodlar yazıldıktan sonra. Sillme işleminin yapıla bilmesi için : Diagram üzerinden "ON DELETE CASCADE" ekleme SSMS’te veritabanını aç. Database Diagrams → kullandığın diyagramı aç. isim tablosu ile soyisim tablosu arasındaki ilişki çizgisine çift tıkla . INSERT and UPDATE Specification bölümünü bul. Delete Rule → Cascade olarak değiştir. Kaydedip diyagramı kapat.   2️⃣ SQL komutuyla ekleme (manuel yöntem) Eğer diyagramdan uğraşmak istemiyorsan, SQL koduyla da ekleyebilirsin: ALTER TABLE Soyisim DROP CONSTRAINT FK_Soyisim_Isim;  -- Burada mevcut foreign key adını yazacaksın ALTER TABLE Soyisim ADD CONSTRAINT FK_Soyisim_Isim FOREIGN KEY (isim_Id) REFERENCES Isim(isim_Id) ON DELETE CASCADE; ON DELETE CASCADE tamamen silme işlemleri için tanımlanan bir FOREIGN KEY davranış kuralıdır. Normal FOREIGN KEY : Ana tabloda bir kayıt silmek istersen ve bu kayıt başka ...