Başlıkta da belirttiğim gibi sizlere C# kod ile Access Veritabanındaki otomatik sayı alanının başlangıç değeri nasıl değiştirilir onu anlatacağım.

Önce bir Windows Form oluşturuyoruz. Form’a 1 adet buton ve 1 adet textbox ekliyoruz. Butonun ismi Sayıyı Değiştir olsun.

Daha sonra veritabanımızda 1 adet otomatik sayı alanı olsun, 2 alanda kısa metin alanı olsun. Ben bir önceki makalemde kullandığım veritabanını kullanacağım. Veritabanımın ismi Data, tablo ismim Kayit.

Şimdi tekrar Visual Studio’ya dönüyorum ve kodlarımızı yazmaya başlıyorum.

using System.Data.OleDb;//Access kütüphanesi 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        OleDbConnection bag = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Data.accdb");
        //BURASI VERİTABANI BAĞLANTISI
        OleDbCommand kmt = new OleDbCommand();// Burası kmt isimli bir komut tanım cümlesi.
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                if (textBox1.Text.Trim() != "" && MessageBox.Show("Başlangıç Sayısını Değiştirmek İstiyor Musunuz ? Tüm Veriler Silinecek !""Dikkat",
                MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    textBox1.Text = (Convert.ToInt32(textBox1.Text) - 1).ToString(); // textbox1'e girilen değeri int'e çevirdik.
                    bag.Open();  //bağlantıyı açtık.
                    kmt.Connection = bag; //komutumuza bağlantıyı atadık.
                    kmt.CommandText = "INSERT INTO Kayit(ogrNo) VALUES ('" + textBox1.Text + "')"//SQL sorgumuzu yazdık.
                    kmt.ExecuteNonQuery();  // kmt adlı komutumuzu çalıştırdık.
                    OleDbCommand kmt2 = new OleDbCommand("DELETE * FROM Kayit", bag);
                    //yeni bir komut belirledik kmt2 adında ve SQL sorgumuzu yazdık.
                    kmt2.ExecuteNonQuery(); //kmt2 adlı komutumuzu çalıştırdık.
                    textBox1.Text = ""//textbox1.text'ni temizledik.
                    MessageBox.Show("Sayı Değişti !""Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information); //messagebox ile bilgi verdik.               
                }
                else
                {
                    MessageBox.Show("Lütfen Sayı Alanını Boş Bırakmayınız !""Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    //else'de messagebox ile textbox1 boş bırakılırsa uyarı mesajı verdirdik
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Bilgilendirme", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            bag.Close(); // bağlanıtıyı kapattık.
                         //Try catch ile hata varsa onu yakalamaya çalıştık.
        }
    }
}

Burada if else ile textbox.text’i boş ise uyarı mesajı verdirdik.Eğer kullanıcı bir değer girerse o zaman messagebox yardımı ile ona bir soru sorduk değiştirmek istiyor musunuz? diye.

Kullanıcı evet derse kodlarımız çalışmaya başlayacak ve işlemi gerçekleştirecektir.

Buradaki amaç kullanıcı textbox ‘a bir değer girecek örneğin 55 bu girdiği değer bizim veritabanımızda bulunan tablonun içindeki verileri silecek ve ogrNo isimli otomatik sayı alanının başlangıç değerini 55’ten başlatacak.