Jump to content

C#'da Bu Kodları Açıklayabilecek Olan Var Mı?


Proctives
 Share

Recommended Posts

c2PfHEt.png

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]NMtwY4m.png[/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]
 

Link to comment
Share on other sites

[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.

Link to comment
Share on other sites

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. 

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...