SQL Silinen verile sıra hatası

FLUKE
14-07-2018, 22:06   |  #1  
FLUKE avatarı
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Tem 2018

 

Veritabanımda 3 satır veri var sil butonumdan seçtiğim satırı siliyorum fakat yeni ekle butonuyla satır eklerken mesela 3. satırı sildim tekrar ekle butonuyla veri girdiğimde 2 den 4 e geçiyor. Bunu Nasıl önleyebilirim ?

2. sorum veri tabanında da verileri silince sql de de aynı şey oluyor mesela tüm verileri query ile silsem bile tertemiz tabloya girdiğim veri en son girilen satır sayısının bir fazlası olarak gözüküyor.Bunun sebebi nedir ? 

//Yeni Hesap karti girişi

            SqlCommand komut = new SqlCommand("insert into OTOMASYON_carikart (CariAdı,CariKodu,Adresi,Telefon,VergiDairesi,VergiNo) values (@p1,@p2,@p3,@p4,@p5,@p6)", bgl.
                baglanti());
   
            komut.Parameters.AddWithValue("@p1", txtcariad.Text);
            komut.Parameters.AddWithValue("@p2", txtcarikod.Text);
            komut.Parameters.AddWithValue("@p3", txtadres.Text);
            komut.Parameters.AddWithValue("@p4", txttelefon.Text);
            komut.Parameters.AddWithValue("@p5", txtvergidaire.Text);
            komut.Parameters.AddWithValue("@p6", txtvergino.Text);
            var ExecuteNonQuery=  komut.ExecuteNonQuery();
            bgl.baglanti().Close();
            MessageBox.Show("Yeni Hesap Sisteme Eklendi!", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information);
            yukle();

//ürün silme id ye göre çalışıyor//
            SqlCommand delete = new SqlCommand("Delete From OTOMASYON_carikart where ID=@p1", bgl.baglanti());
            delete.Parameters.AddWithValue("@p1", txtid.Text);
            var ExecuteNonQuery=delete.ExecuteNonQuery();
            MessageBox.Show("Ürün Silindi", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            yukle();

void yukle()
        {
            DataTable dt = new DataTable();
            SqlDataAdapter da = new SqlDataAdapter("Select * From OTOMASYON_carikart", bgl.baglanti());
            da.Fill(dt);
            gridControl1.DataSource = dt;
            
        }

yükle fonksiyonunu da ekledim ilgilenirseniz sevinirim .

White-Fox
19-08-2018, 10:23   |  #2  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 149
1,042 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

bahsettiğin primary key sanırım ,

otomatik olarak 1 er 1 er artmasını istemişsin.

1 - kayıt

2-kayıt 

3- kayıt 

3.yü silip bir daha eklersen

1-kayıt

2-kayıt

4-kayıt olacaktır.

Id nin son değerini veritabanı özel olarak saklar.

Tamamen sıfırlamak istersen

truncate table komutunu kullanabilirsin.

Ancak tavsiyem primary key nedir önce onu araştırman.