AccessTr.neT

Tam Versiyon: C# ile mükerrer kayıt engelleme
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Kod:
      private void button1_Click(object sender, EventArgs e)
       {
           if ((textBox1.Text != "") && (textBox2.Text != "") && (textBox3.Text != ""))
           {
               baglanti.Open();
               string sorgu = "insert into ogrenciler(OkulNo,Ad,Soyad,Resim) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + pictureBox1 .ImageLocation + "')";
               OleDbCommand komut = new OleDbCommand(sorgu, baglanti);
               komut.ExecuteNonQuery();                
               pictureBox1.Image.Save("Resimler/" + textBox1 .Text.ToString () + ".jpg");
               baglanti.Close();                
               TabloyuDoldur();
               MessageBox.Show("kayıt eklendi");                
           }
       }
Bu kod ile mükerrer kaydı nasıl engelleyebilirim?
Kod:
private void button1_Click(object sender, EventArgs e)
      {
          if ((textBox1.Text != "") && (textBox2.Text != "") && (textBox3.Text != ""))
          {
              baglanti.Open();
              //string sorgu = "insert into ogrenciler(OkulNo,Ad,Soyad,Resim) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + pictureBox1 .ImageLocation + "')";
              string sorgu = "select OkulNo from ogrenciler where OkulNo=@da";
              OleDbCommand komut = new OleDbCommand(sorgu, baglanti);
              komut.Parameters.AddWithValue("@da", textBox1.Text);
              OleDbDataReader dr = komut.ExecuteReader();
              if (dr.Read())
                  {
                   MessageBox.Show("Aynı kaydı tekrar ekleyemezsiniz");
                   komut.ExecuteNonQuery();
                   baglanti.Close();
                  }
              else
                  {
                  string sorgum = "insert into ogrenciler(OkulNo,Ad,Soyad,Resim) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + pictureBox1.ImageLocation + "')";
                  OleDbCommand komut2 = new OleDbCommand(sorgum, baglanti);
                  komut2.ExecuteNonQuery();                
                  pictureBox1.Image.Save("Resimler/" + textBox1.Text.ToString () + ".jpg");
                  baglanti.Close();                
                  TabloyuDoldur();
                  MessageBox.Show("kayıt eklendi");
                  }
          }
      }

şeklinde yazınca mükerrer kaydı engellemiş oldum,belki birilerinin işine yarar.
Eski bir konuyu hortlatmış gibi olacağım fakat Mükerrer kayıt engellemek için 

ExecuteScalar()  metodu daha mantıklı olacaktır. Tabloları tamamen taramak yerine kayıt sayısına bakıp 0 dan farklı ise Mükerrer Kayıt mesajı döndürecektir.

Not: MySqL veri tabanı kullandığım için Connection,Comand, ve using eklemelerim farklılık gösterir, Kendi veri tabanınıza uyarlayınız.

Kod:
MySqlConnection BaG = new MySqlConnection("Server=localhost;Database=dB_Adi;Uid=dB_Kullanici_Adi;Pwd=dB_Sifre;");
     
          BaG.Open();
           
string SoRgU = "SELECT Count(KullaniciAdi) AS Kullanici, KullaniciAdi FROM dbo_kullanicilar GROUP BY KullaniciAdi HAVING KullaniciAdi ='" + txt_KullaniciAdi.Text + "'";

            MySqlCommand cMd = new MySqlCommand(SoRgU, BaG);
            int sayi = (int)Convert.ToSByte(cMd.ExecuteScalar());
            if (sayi != 0)
            {
                MessageBox.Show(txt_KullaniciAdi.Text + "  KULLANICI DAHA ÖNCE KAYIT EDİLMİŞTİR.", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                BaG.Close();
                return;
            }
            else
            {   
          bu bölüme geldi ise daha önce kayıt edilmediğinden burada kayıt kodlarınız olacak.   
        }
             
            BaG.Close();
Merhaba bu kodların tamamı nı paylaşabilirmisiniz. banada lazım kodlar. ayrıca çok teşekkür ederim. faydalı bilgiler