Proctives Posted May 26, 2014 Share Posted May 26, 2014 Selamun aleyküm arkadaşlar. C# da arkadaşımın büyük yardımlarıyla bir kütüphane otomasyonu yaptık. Fakat kod kısmını hiç anlayamadım. Daha doğrusu zaten C#'a hakim birisi değilim,projeyi teslim aşamasında hocalar kod kısmından çok soru soruyorlar. Sizden ricam anlayan kardeşlerim varsa,açıklayabildiği yerleri bir satır bile olsa neden böyle olduğunu söylerlerse çok sevinirim. Şimdiden Allah razı olsun...Form Kısmı [spoiler][/spoiler]Kod Kısmı [spoiler]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 Komutla_data_2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } OleDbConnection bag = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=data.mdb"); OleDbCommand kmt = new OleDbCommand(); OleDbDataAdapter adtr = new OleDbDataAdapter(); DataSet dtst = new DataSet(); void listelesene() { bag.Open(); OleDbDataAdapter adtr = new OleDbDataAdapter("select * From kitapbil", bag); adtr.Fill(dtst, "kitapbil"); dataGridView1.DataSource = dtst; dataGridView1.DataMember = "kitapbil"; adtr.Dispose(); bag.Close(); } void texteyaz() { textBox9.Text = (this.BindingContext[dtst, "kitapbil"].Position+1) + " / " + this.BindingContext[dtst, "kitapbil"].Count; } private void Form1_Load(object sender, EventArgs e) { listelesene(); texteyaz(); textBox1.DataBindings.Add("Text", dtst, "kitapbil.Kitap_NO"); textBox2.DataBindings.Add("Text", dtst, "kitapbil.Kitap_Adi"); textBox3.DataBindings.Add("Text", dtst, "kitapbil.Yazar_Adi"); textBox4.DataBindings.Add("Text", dtst, "kitapbil.Yayin_Evi"); textBox5.DataBindings.Add("Text", dtst, "kitapbil.Kitap_Turu"); textBox6.DataBindings.Add("Text", dtst, "kitapbil.Baski_Sayisi"); textBox7.DataBindings.Add("Text", dtst, "kitapbil.Stok_Sayisi"); textBox8.DataBindings.Add("Text", dtst, "kitapbil.Gelis_Tarihi"); } private void button2_Click(object sender, EventArgs e) { foreach (Control c in this.Controls) if (c is TextBox) if (c.Text == "") { MessageBox.Show("Alanları Doldurunuz."); return; } bag.Open(); kmt.Connection = bag; kmt.CommandText = "INSERT INTO kitapbil(Kitap_No,Kitap_Adi,Yazar_Adi,Yayin_Evi,Kitap_Turu,Baski_Sayisi,Stok_Sayisi,Gelis_Tarihi) VALUES ('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "','" + textBox7.Text + "','" + textBox8.Text + "') "; kmt.ExecuteNonQuery(); kmt.Dispose(); bag.Close(); dtst.Clear(); listelesene(); texteyaz(); } private void button3_Click(object sender, EventArgs e) { DialogResult cevap; cevap = MessageBox.Show("Kaydı silmek istediğinizden emin misiniz?", "Uyarı", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (cevap == DialogResult.Yes) { bag.Open(); kmt.Connection = bag; kmt.CommandText = "DELETE from kitapbil WHERE Kitap_No='" + textBox1.Text + "'"; kmt.ExecuteNonQuery(); kmt.Dispose(); bag.Close(); dtst.Clear(); listelesene(); texteyaz(); } } private void button1_Click(object sender, EventArgs e) { this.BindingContext[dtst, "kitapbil"].AddNew(); } private void button4_Click(object sender, EventArgs e) { bag.Open(); kmt.CommandText = "UPDATE kitapbil SET Kitap_Adi='" + textBox2.Text + "',Yazar_Adi='" + textBox3.Text + "',Yayin_Evi='" + textBox4.Text + "',Kitap_Turu='" + textBox5.Text + "',Baski_Sayisi='" + textBox6.Text + "',Stok_Sayisi='" + textBox7.Text + "',Gelis_Tarihi='" + textBox8.Text + "' WHERE Kitap_No='" + textBox1.Text + "'"; kmt.Connection = bag; kmt.ExecuteNonQuery(); kmt.Dispose(); bag.Close(); dtst.Clear(); listelesene(); texteyaz(); } private void button8_Click(object sender, EventArgs e) { this.BindingContext[dtst, "kitapbil"].Position += 1; texteyaz(); } private void button9_Click(object sender, EventArgs e) { this.BindingContext[dtst, "kitapbil"].Position = this.BindingContext[dtst, "kitapbil"].Count; texteyaz(); } private void button6_Click(object sender, EventArgs e) { this.BindingContext[dtst, "kitapbil"].Position = 0; texteyaz(); } private void button7_Click(object sender, EventArgs e) { this.BindingContext[dtst, "kitapbil"].Position -= 1; texteyaz(); } private void button10_Click(object sender, EventArgs e) { foreach (Control c in this.Controls) if (c is TextBox) c.Text = ""; } private void button5_Click(object sender, EventArgs e) { Application.Exit(); } } } [/spoiler] Quote Link to comment Share on other sites More sharing options...
KintaRo Posted May 26, 2014 Share Posted May 26, 2014 [warning][color=#FF0000][b]DİKKAT: Konu Başlığını forum Kurallarına gore yeniden düzenleyiniz. Aksi halde cope tasınacaktır. [topic=872]Forum Kuralları[/topic] - [ Madde 10-16 ]Konu düzenlenene kadar yazılan tüm iletiler silinecek, ileti yazanlar uyarı alacaktır.[/b][/color][/warning] bu verdiğin kodlar Form1.cs dosyasının kodları. Burada sadece veritabanı bağlantısı kodları görünüyor. Diğer her şey class lar ile yapılmış. Asıl oraları öğrenmeye bak derim. Quote Link to comment Share on other sites More sharing options...
cumman Posted May 26, 2014 Share Posted May 26, 2014 Bence bu kodu hocaniza teslim etmeyin. Hocalarin en dusuk not verecegi kod cinsi. Hatta kabul ederlerse onlarin hatasidir diyelim. Eger c# ta kod yaziyorsaniz nesneye yonelik kavramlari once calisin ve anlayin. Yine de ben aciklamaya calisayim. Bunlar private fields: OleDbConnection bag = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=data.mdb"); OleDbCommand kmt = new OleDbCommand(); OleDbDataAdapter adtr = new OleDbDataAdapter(); DataSet dtst = new DataSet(); Burada listelesene methodu ile gridview dolduruluyor: void listelesene() { bag.Open(); OleDbDataAdapter adtr = new OleDbDataAdapter("select * From kitapbil", bag); adtr.Fill(dtst, "kitapbil"); dataGridView1.DataSource = dtst; dataGridView1.DataMember = "kitapbil"; adtr.Dispose(); bag.Close(); } Bu method textbox9 a yazdiyor ( hangisi bilmiyoruz) void texteyaz() { textBox9.Text = (this.BindingContext[dtst, "kitapbil"].Position+1) + " / " + this.BindingContext[dtst, "kitapbil"].Count; } Page load eventi. Textboxlara databinding eklemis private void Form1_Load(object sender, EventArgs e) { listelesene(); texteyaz(); textBox1.DataBindings.Add("Text", dtst, "kitapbil.Kitap_NO"); textBox2.DataBindings.Add("Text", dtst, "kitapbil.Kitap_Adi"); textBox3.DataBindings.Add("Text", dtst, "kitapbil.Yazar_Adi"); textBox4.DataBindings.Add("Text", dtst, "kitapbil.Yayin_Evi"); textBox5.DataBindings.Add("Text", dtst, "kitapbil.Kitap_Turu"); textBox6.DataBindings.Add("Text", dtst, "kitapbil.Baski_Sayisi"); textBox7.DataBindings.Add("Text", dtst, "kitapbil.Stok_Sayisi"); textBox8.DataBindings.Add("Text", dtst, "kitapbil.Gelis_Tarihi"); } Button 2 eventi. Ilk foreach eger bir textbox bossa hata verdirmek icin kontrol ettiriyor. Eger bos birakilan hane yoksa veritabanina ekletip tekrardan listeletiyor. private void button2_Click(object sender, EventArgs e) { foreach (Control c in this.Controls) if (c is TextBox) if (c.Text == "") { MessageBox.Show("Alanları Doldurunuz."); return; } bag.Open(); kmt.Connection = bag; kmt.CommandText = "INSERT INTO kitapbil(Kitap_No,Kitap_Adi,Yazar_Adi,Yayin_Evi,Kitap_Turu,Baski_Sayisi,Stok_Sayisi,Gelis_Tarihi) VALUES ('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "','" + textBox7.Text + "','" + textBox8.Text + "') "; kmt.ExecuteNonQuery(); kmt.Dispose(); bag.Close(); dtst.Clear(); listelesene(); texteyaz(); } Silme tusuna basilinca cagrilan event. private void button3_Click(object sender, EventArgs e) { DialogResult cevap; cevap = MessageBox.Show("Kaydı silmek istediğinizden emin misiniz?", "Uyarı", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (cevap == DialogResult.Yes) { bag.Open(); kmt.Connection = bag; kmt.CommandText = "DELETE from kitapbil WHERE Kitap_No='" + textBox1.Text + "'"; kmt.ExecuteNonQuery(); kmt.Dispose(); bag.Close(); dtst.Clear(); listelesene(); texteyaz(); } } Bu event ise duzeltme yapmak icin: private void button4_Click(object sender, EventArgs e) { bag.Open(); kmt.CommandText = "UPDATE kitapbil SET Kitap_Adi='" + textBox2.Text + "',Yazar_Adi='" + textBox3.Text + "',Yayin_Evi='" + textBox4.Text + "',Kitap_Turu='" + textBox5.Text + "',Baski_Sayisi='" + textBox6.Text + "',Stok_Sayisi='" + textBox7.Text + "',Gelis_Tarihi='" + textBox8.Text + "' WHERE Kitap_No='" + textBox1.Text + "'"; kmt.Connection = bag; kmt.ExecuteNonQuery(); kmt.Dispose(); bag.Close(); dtst.Clear(); listelesene(); texteyaz(); } BindingContext ler ise veritabanina gitmeden direk dataset icinde oncesini sonrasini bulmak icin kullanilir. 0 dersen o kayit, -1 dersen onceki +1 dersen sonraki kayit manasina gelir. Quote Link to comment Share on other sites More sharing options...
Proctives Posted May 27, 2014 Author Share Posted May 27, 2014 İlginiz için teşekkür ederim,sağolun varolun... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.