C# ile Windows Form Veritabanı Bağlantısı Yapmak-Kaydet İşlemi

Öncelikle Microsoft SQL Server Management Studio Üzerinde Kitaplar adında bir veritabanı oluşturulur. ( Veritabanı oluşturma konusu SQL başlığı altında inceleyebilirsiniz.)

Kitaplar adında Tablomuz üst kısımda gösterildiği oluşturulur.

Daha sonra veritabanına bağlanmak için SQL Connection nesnesinden faydalanılır. Bu nesneyi kullanabilmemiz için bir namespace tanımlaması yapmamız gerekiyor. Formun üzerine çift tıklayarak üst taraftaki kod bloklarına using System.Data.SqlClient;
kodunu ekleriz.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

Form Load olayına veritabanına bağlantı için gerekli kodlar yazılır.


 SqlConnection baglanti = new SqlConnection("Data Source=localhost; Initial Catalog=Kitaplar; Integrated Security=True;");
            //Kendi bilgisayarımız olduğundan localhost yada bilgisayar adı, Veritabanı adı ve şifresiz bağlatı yapıldığı belirtildi.
 baglanti.Open();
            //Uygulamayı çalıştırdığımızda hata vermezse bağlantı gerçekleşmiş demektir.

Yukarıdaki Form Elemanları Form’a eklenir.

public partial class Form1 : Form
    {

        SqlConnection baglanti = new SqlConnection("Data Source=ali\\SQLEXPRESS; Initial Catalog=Kitaplar; Integrated Security=True;");
        //Kendi bilgisayarımız olduğundan localhost, Veritabanı adı ve şifresiz bağlatı yapıldığı belirtildi.



        public Form1()
        {
            InitializeComponent();
        }



        private void button1_Click(object sender, EventArgs e)
        {

            baglanti.Open();
            //Bağlantı açılıyor.


            SqlCommand cmd = new SqlCommand("insert into Kitaplar(KitapAdi,Yazar,SayfaSayisi) Values('"+TxtKitapAdi.Text+"','"+TxtYazar.Text+"',"+TxtSayfaSayisi.Text+")",baglanti);
            //SqlCommand nesnesi içerisinde bir kaydet sorgusu oluşturulur ve alan isimleri doğru bir şekilde girilir

            cmd.ExecuteNonQuery();
            //SQL sorgusu çalıştırılıyor.

            cmd.Dispose();
            //Command yani cmd nesnesi bellekte yer kaplamasın diye boşaltılır.

            baglanti.Close();
            //Bağlantı kapatılıyor.

            baglanti.Dispose();
            //baglanti boşaltılıyor.



        }
    }
}

Kaydet İşlemi Kaydet Butonunun içerisine yazılan kodlarla tamamlanır.

Not: Data Source=ali\\SQLEXPRESS bu kısıma siz kendi bilgisayar adınızı girin.

 

using System;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace WindowsFormsApp106
{
    public partial class Form1 : Form
    {
        string baglantiCumlesi = "Data Source=LAB3OGRTMEN\\SQLEXPRESS01; Initial Catalog=Kitaplar; Integrated Security=True;";

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // Sayfa sayısının geçerli bir sayı olup olmadığını kontrol et
            if (!int.TryParse(TxtSayfaSayisi.Text, out int sayfaSayisi))
            {
                MessageBox.Show("Sayfa sayısı sadece rakamlardan oluşmalıdır!", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            // Veritabanı bağlantısı açılır ve parametreli sorgu ile kayıt yapılır
            try
            {
                using (SqlConnection baglanti = new SqlConnection(baglantiCumlesi))
                {
                    baglanti.Open();

                    string sorgu = "INSERT INTO Kitaplar (KitapAdi, KitapYazari, SayfaSayisi) VALUES (@adi, @yazar, @sayfa)";
                    using (SqlCommand cmd = new SqlCommand(sorgu, baglanti))
                    {
                        cmd.Parameters.AddWithValue("@adi", TxtKitapAdi.Text);
                        cmd.Parameters.AddWithValue("@yazar", TxtYazar.Text);
                        cmd.Parameters.AddWithValue("@sayfa", sayfaSayisi);

                        cmd.ExecuteNonQuery();
                    }
                }

                MessageBox.Show("Kayıt işlemi başarıyla tamamlandı.", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information);
                
                // Temizleme işlemleri
                TxtKitapAdi.Clear();
                TxtYazar.Clear();
                TxtSayfaSayisi.Clear();
                TxtKitapAdi.Focus();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Bir hata oluştu: " + ex.Message, "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }
}

Buna da gözat

Arduino buton ile led yakmak

Arduino button ile led yakma uygulamasına geçmeden önce buton nedir kısaca ona bakalım. Buton iki veya bazen …