C# ile mükerrer kayıt engelleme

25/09/2015, 11:48

alican60

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?
25/09/2015, 15:51

alican60

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.
23/07/2019, 16:37

ozguryasin

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();
08/04/2023, 20:44

y2941

Merhaba bu kodların tamamı nı paylaşabilirmisiniz. banada lazım kodlar. ayrıca çok teşekkür ederim. faydalı bilgiler