using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
public static class DbHelper
{
// Bağlantı cümlesi (senin kendi bağlantına göre güncelle)
private static string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=YourDbName;Integrated Security=True";
// INSERT + SCOPE_IDENTITY
public static object InsertAndGetId(string query, Dictionary<string, string> parameters)
{
using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand($"{query}; SELECT SCOPE_IDENTITY();", connection))
{
foreach (var p in parameters)
cmd.Parameters.AddWithValue("@" + p.Key, p.Value);
connection.Open();
object insertedId = cmd.ExecuteScalar(); // eklenen ID döner
return insertedId;
}
}
// GÜNCELLEME
public static int Update(string query, Dictionary<string, string> parameters)
{
using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand(query, connection))
{
foreach (var p in parameters)
cmd.Parameters.AddWithValue("@" + p.Key, p.Value);
connection.Open();
return cmd.ExecuteNonQuery(); // kaç satır güncellendi
}
}
// SİLME
public static int Delete(string query, Dictionary<string, string> parameters)
{
using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand(query, connection))
{
foreach (var p in parameters)
cmd.Parameters.AddWithValue("@" + p.Key, p.Value);
connection.Open();
return cmd.ExecuteNonQuery(); // kaç satır silindi
}
}
// ID BULMA (mevcut kaydın id’sini alma)
public static object GetId(string query, Dictionary<string, string> parameters)
{
using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand(query, connection))
{
foreach (var p in parameters)
cmd.Parameters.AddWithValue("@" + p.Key, p.Value);
connection.Open();
return cmd.ExecuteScalar(); // örneğin ID gibi tek değer
}
}
}
******************************************************************************
C# örnek Kullanım kodları
******************************************************************************
******************************************************************************
Kayıt Ekleme ve ID’yi Label’a Yazdırma
******************************************************************************
private void btn_Ekle_Click(object sender, EventArgs e)
{
var parametreler = new Dictionary<string, string>
{
{ "marka", txt_marka.Text },
{ "viskozite1", txt_viskozite1.Text },
{ "viskozite2", txt_viskozite2.Text }
};
string sorgu = "INSERT INTO motor_yaglari (marka, viskozite1, viskozite2) VALUES (@marka, @viskozite1, @viskozite2)";
object yeniId = DbHelper.InsertAndGetId(sorgu, parametreler);
if (yeniId != null)
lbl_id.Text = yeniId.ToString();
}
******************************************************************************
Güncelleme (ID ile)
******************************************************************************
private void btn_Guncelle_Click(object sender, EventArgs e)
{
var parametreler = new Dictionary<string, string>
{
{ "id", lbl_id.Text },
{ "marka", txt_marka.Text },
{ "viskozite1", txt_viskozite1.Text },
{ "viskozite2", txt_viskozite2.Text }
};
string sorgu = "UPDATE motor_yaglari SET marka = @marka, viskozite1 = @viskozite1, viskozite2 = @viskozite2 WHERE id = @id";
DbHelper.Update(sorgu, parametreler);
}
******************************************************************************
Silme (ID ile)
******************************************************************************
private void btn_Sil_Click(object sender, EventArgs e)
{
var parametreler = new Dictionary<string, string>
{
{ "id", lbl_id.Text }
};
string sorgu = "DELETE FROM motor_yaglari WHERE id = @id";
DbHelper.Delete(sorgu, parametreler);
}
******************************************************************************
Daha Önce Eklenen Kayıtların ID’sini Bulma
******************************************************************************
private void btn_IdBul_Click(object sender, EventArgs e)
{
var parametreler = new Dictionary<string, string>
{
{ "marka", txt_marka.Text },
{ "viskozite1", txt_viskozite1.Text },
{ "viskozite2", txt_viskozite2.Text }
};
string sorgu = "SELECT id FROM motor_yaglari WHERE marka = @marka AND viskozite1 = @viskozite1 AND viskozite2 = @viskozite2";
object id = DbHelper.GetId(sorgu, parametreler);
if (id != null)
lbl_id.Text = id.ToString();
else
lbl_id.Text = "Bulunamadı";
}
******************************************************************************
Açıklamalarla Özet
******************************************************************************
| Yöntem Adı |
Görevi |
InsertAndGetId() |
Yeni kayıt ekler ve SCOPE_IDENTITY() ile ID'yi döner |
Update() |
ID ile güncelleme yapar |
Delete() |
ID ile silme yapar |
GetId() |
Belirli kriterlere göre ID'yi bulur (örneğin eski kayıtlar için) |
🧠 Sonuç ve Avantajlar
-
Tüm projelerinde bu DbHelper.cs sınıfını kullanarak kod tekrarını azaltırsın.
-
Label ile ID yakaladığın için, güncelleme ve silme işlemleri sadeleşir.
-
Aynı kalıpta her tabloda çalışabilir.