C# ile masaüstü uygulamaları geliştirirken, veritabanı işlemleri neredeyse her zaman karşımıza çıkar. Bu yazıda, Windows Forms (WinForms) kullanarak SQL Server veritabanına nasıl veri kaydedileceğini adım adım öğreneceksiniz. Örnek uygulama, yeni başlayanlardan deneyimlilere kadar herkes için oldukça faydalı ve öğretici olacak.
🔧 1. Giriş: Neden Veritabanına Kayıt Gerekir?
C# ile geliştirilen masaüstü programlarda kullanıcı bilgileri, müşteri kayıtları, ürün listeleri gibi verileri saklamak gerekir. Bunun en sağlıklı ve profesyonel yolu bir veritabanı kullanmaktır. Biz bu örnekte SQL Server veritabanı kullanacağız.
🗂️ 2. Veritabanı ve Tabloyu Oluşturma
İlk adım, SQL Server Management Studio (SSMS) ya da Visual Studio’nun kendi araçlarıyla veritabanını ve tabloyu oluşturmaktır.
CREATE DATABASE TestDB;
USE TestDB;
CREATE TABLE Kisiler (
Id INT PRIMARY KEY IDENTITY,
Ad NVARCHAR(50),
Soyad NVARCHAR(50)
);
📌 Bu komutlarla
TestDB
adında bir veritabanı veKisiler
adında bir tablo oluşturduk.
🖼️ 3. Form Tasarımı (Windows Forms)
Visual Studio’da yeni bir Windows Forms App (.NET Framework) projesi açın. Formun üzerine aşağıdaki bileşenleri ekleyin:
- 2 adet
TextBox
→txtAd
,txtSoyad
- 1 adet
Button
→btnKaydet
, Text: “Kaydet”
Bu form, kullanıcıdan ad ve soyad alıp veritabanına ekleyecek.
💾 4. SQL Server’a Bağlantı ve Kayıt Ekleme
Şimdi C# tarafında veritabanına bağlanıp veriyi ekleyen kodu yazalım:
using System;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace VeritabaniOrnek
{
public partial class Form1 : Form
{
string connectionString = "Server=.;Database=TestDB;Trusted_Connection=True;";
public Form1()
{
InitializeComponent();
}
private void btnKaydet_Click(object sender, EventArgs e)
{
string ad = txtAd.Text;
string soyad = txtSoyad.Text;
using (SqlConnection conn = new SqlConnection(connectionString))
{
string query = "INSERT INTO Kisiler (Ad, Soyad) VALUES (@Ad, @Soyad)";
SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.AddWithValue("@Ad", ad);
cmd.Parameters.AddWithValue("@Soyad", soyad);
try
{
conn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("Kayıt başarıyla eklendi!");
}
catch (Exception ex)
{
MessageBox.Show("Hata oluştu: " + ex.Message);
}
}
}
}
}
🔐 5. SQL Injection’a Karşı Güvenlik Önlemleri
Kodda gördüğünüz @Ad
ve @Soyad
gibi ifadeler SQL parametresidir. Bu parametreler sayesinde kullanıcıdan gelen veri doğrudan sorguya dahil edilmez, böylece SQL Injection gibi saldırılar engellenmiş olur.
cmd.Parameters.AddWithValue("@Ad", ad);