Formlarla e-okul (Kayıt ve Şifreli Giriş) C#.Net
Formlarla e-okul (Kayıt ve Giriş) C#.Net
data isimli yukarıdaki resimde gösterilen alanlara sahip veritabanı dosyasını access’te (ver : 2003) oluşturup projemizdeki bin klasörü içindeki debup klasörüne kopyalıyoruz. (tablo adı : bilgi olmalı)
Form1’e dataView ekliyoruz.Properties’den Modifiers’i Public yapıyoruz.(Toolbox’a dataView ekleme : Toolbox üzerinde sağ tık.Choose Items tıklıyoruz.Ekrana gelen menüden dataView bulup seçtikten sonra ok’liyoruz.)
Form1’e (Giriş)yazılacak kodlar :
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.OleDb; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace formlarla_e_okul { public partial class Form1 : Form { public Form2 frm2; public Form3 frm3; public Form1() { InitializeComponent(); frm2 = new Form2(); frm3 = new Form3(); frm2.frm1 = this; frm3.frm1 = this; } public OleDbConnection bag = new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=data.mdb");//veritabanı bağlantısını yapıyorum public OleDbCommand kmt = new OleDbCommand();//komut kullanabilmem için kmt değişkeni oluşturdum. public OleDbDataAdapter adtr = new OleDbDataAdapter();//adaptörümü oluşturuyorum public DataSet dtst = new DataSet();//sanal veritabanım datasetimi oluşturuyorum //yukarıdaki tanımlamaları public yapmamın nedeni 3. formda kullanabilmek içindir. public void liste() { bag.Open();//bağlantıyı aç OleDbDataAdapter adtr = new OleDbDataAdapter("select * From bilgi", bag);//bag bağlantısındaki bilgi tablusunda bulunan bütün kayıtları seç. adtr.Fill(dtst, "bilgi");//addaptörü datasetin bilgi tablosundaki kayıtlarla doldur. dataView1.Table = dtst.Tables["bilgi"];//dataview!in tablosu datasetimdeki bilgi tablosudur adtr.Dispose(); bag.Close();//bağlantıdan çık } Random rs = new Random(); public void rsayi() { label2.Text = rs.Next(10).ToString() + rs.Next(10).ToString() + rs.Next(10).ToString() + rs.Next(10).ToString(); //4 haneli 0 ile 10 arasında rastgele sayı üretilip label2 ye yazdırılıyor } private void Form1_Load(object sender, EventArgs e) { liste(); rsayi(); } private void btnYenile_Click(object sender, EventArgs e) { rsayi(); } private void btnGiris_Click(object sender, EventArgs e) { try { if (int.Parse(textBox1.Text) == int.Parse(label2.Text)) { int kayit_no; dataView1.Sort = "kullanici_adi";//Dataview1 i kullanici_adi alanına göre sıralar kayit_no = dataView1.Find(textBox2.Text);//textbox2 e girilen kullanıcı adının dataview de(veritabanında) arar if (kayit_no != -1)//arama ile gelen sonuç -1 den farklıysa yani o kullanıcı varsa { dataView1.Sort = "sifre";//button1 defa şifreye göre sıralıyoruz kayit_no = dataView1.Find(textBox3.Text);//textbox3 e girilen şifre dataview de(veritabanında) arar if (kayit_no != -1)//arama ile gelen sonuç -1 den farklıysa yani o kullanıcı varsa { frm2.Show(); this.Hide(); } else label5.Text = "Kullanıcı adı veya şifre hatalı";//eğer aramada -1 üretilirse hata mesajının görüntülenmesini sağlıyor } else label5.Text = "Kullanıcı adı veya şifre hatalı";//yukarı ile aynı } else label5.Text = "Güvenlik Kodu hatalı";//yukarı ile aynı } catch { ;//hata oluşursa hiçbirşey yapma } } private void btnKayit_Click(object sender, EventArgs e) { this.Hide(); frm3.Show(); textBox1.Clear(); textBox2.Clear(); textBox3.Clear(); } } } [/Code] <span style="color: #ff0000;"><span style="text-decoration: underline;"><strong> </strong></span></span> <span style="color: #ff0000;"><span style="text-decoration: underline;"><strong>Form2'e (Notlar) yazılacak kodlar :</strong></span></span> <span style="color: #ff0000;"><strong> </strong></span> [Code='Csharp']using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace formlarla_e_okul { public partial class Form2 : Form { public Form1 frm1; public Form2() { InitializeComponent(); } private void btnHesapla_Click(object sender, EventArgs e) { try { label11.Text = ((int.Parse(textBox6.Text) + int.Parse(textBox7.Text) + int.Parse(textBox8.Text)) / 3).ToString(); label12.Text = ((int.Parse(textBox9.Text) + int.Parse(textBox10.Text) + int.Parse(textBox11.Text)) / 3).ToString(); label13.Text = ((int.Parse(textBox12.Text) + int.Parse(textBox13.Text) + int.Parse(textBox14.Text)) / 3).ToString(); label14.Text = ((int.Parse(textBox15.Text) + int.Parse(textBox16.Text) + int.Parse(textBox17.Text)) / 3).ToString(); //textler parse ile integer sayıya dönüştürülüp gerekli işlemler yapılıp string ifadeye dünüştürüldükten sonra labellere yazılıyor } catch { ; } } private void btnCikis_Click(object sender, EventArgs e) { Application.Exit(); } } }
Form3’e (Kayıt) yazılacak kodlar :
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace formlarla_e_okul { public partial class Form3 : Form { public Form3() { InitializeComponent(); } public Form1 frm1; private void btn_Kaydet_Click(object sender, EventArgs e) { try { frm1.bag.Open();//form1deki bag isimli bağlantıyı aç frm1.kmt.Connection = frm1.bag;//komutun bağlantısı form1deki bag bağlantısı frm1.kmt.CommandText = "INSERT INTO bilgi(kullanici_adi,sifre) VALUES ('" + textBox3.Text + "','" + textBox4.Text + "') ";//veritabanına ekleme yapabilmek için yazılacak sorgu frm1.kmt.ExecuteNonQuery();//sorguyu çalıştır. frm1.kmt.Dispose(); frm1.bag.Close(); frm1.liste(); textBox3.Clear(); textBox4.Clear(); MessageBox.Show("Kayıt işlemi tamamlandı !"); } catch { MessageBox.Show("Kayıt işlemi başarısız !"); ; //hata oluşursa mesaj göster } } private void btn_Anasayfa_Click(object sender, EventArgs e) { frm1.Show(); this.Hide(); frm1.rsayi(); } } }
Merhaba. E-okul programının sql bağlantılı ile yapılmış olanı var mı? Birde sql’den crytal report almayı nasıl yapabiliriz? Access ile raporlama oluyor ama sql ile bir türlü yapamdım. Yardımcı olurmusunuz?
Şu an itibarı ile yok. İleri derslerde yayınlayabiliriz. Kolay gelsin.
merhabalar oktay arkadaşımızın dedigi gibi benim ödevim var acsess2003 te e okul için örnek yapmak fakat mesela türkce dersinde 3 sınav 1 sözlü var bunu nasıl ayarlıcam bi türlü yapamıyorum hazır yaplmışı varsa link atarsanız sevinirim benim için cok büyük örnek olacaktır … Teşekkürler.
Mrblar. Katmanlı mimariyle SQL bağlantılı otomasyon örneği var mı acaba ?