Shiva
Admin
Örneğimizde D sürücüsünde bulunan ve Öğrenci listesi tutan “ogrenci.xlsx” isimli bir excel dosyasına bağlanıp bu işlemleri gerçekleştireceğiz. Excel dosyamızı aşağıdaki şekilde hazırlıyoruz.

Daha sonra formumuzu aşağıdaki şekilde tasarlayalım.

Kodlamaya başlayalım. İlk olarak bağlantı sağlayabilmek için;
ekliyoruz.
Daha sonra verileri Getir butonuna çift tıklayarak excel verilerimizin DataGridView üzerinde görünmesini sağlamak amacıyla aşağıdaki kodları yazıyoruz. OledbConnection bağlantı cümlesinde HDR= YES yaparak ilk satırın sütun başlığı olarak ayarlanmasını sağlıyoruz.

Ekle komutuna basınca Textbox’ lara girmiş olduğumuz değerlerin ilgili Excel sütunlarına kayıt işlemi için aşağıdaki kodları yazıyoruz.
Güncelleme işlemini TextBox1′ e girdiğimiz Öğrenci Numarasına göre yapalım. Örneğin 155 nolu Öğrencinin bilgilerini değiştirmek gibi. Bunun için Güncelle butonuna aşağıdaki kodları yazabiliriz.
Yukarıdaki örnekte bağlantıyı tekrar tekrar yazmak yerine Public olarak tanımlayabilirsiniz. İsterseniz veri seçme için bir metot oluşturarak Güncelleme ve Ekleme işlemlerinden sonra veya form açıldığında datagrid’ in güncellenmesini sağlayabilirsiniz.
Kodların bu şekilde düzenlenmiş hali ise aşağıdaki şekilde olacaktır.

Daha sonra formumuzu aşağıdaki şekilde tasarlayalım.

Kodlamaya başlayalım. İlk olarak bağlantı sağlayabilmek için;
C#:
using System.Data.OleDb;
Daha sonra verileri Getir butonuna çift tıklayarak excel verilerimizin DataGridView üzerinde görünmesini sağlamak amacıyla aşağıdaki kodları yazıyoruz. OledbConnection bağlantı cümlesinde HDR= YES yaparak ilk satırın sütun başlığı olarak ayarlanmasını sağlıyoruz.
C#:
private void button1_Click(object sender, EventArgs e)
{
OleDbConnection baglanti = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\ogrenci.xlsx; Extended Properties='Excel 12.0 xml;HDR=YES;'");
baglanti.Open(); //www.yazilimkodlama.com
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Sayfa1$]", baglanti);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt.DefaultView;
baglanti.Close();
}

Ekle komutuna basınca Textbox’ lara girmiş olduğumuz değerlerin ilgili Excel sütunlarına kayıt işlemi için aşağıdaki kodları yazıyoruz.
C#:
OleDbCommand komut = new OleDbCommand();
OleDbConnection baglanti = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\ogrenci.xlsx; Extended Properties='Excel 12.0 xml;HDR=YES;'");
baglanti.Open();
komut.Connection = baglanti; //www.realitycheats.com
string sql = "Insert into [Sayfa1$] (NUMARA,AD,SOYAD,SINIFI) values('" + textBox1.Text + "','" + textBox2.Text + "','"+textBox3.Text+"','"+textBox4.Text+"')";
komut.CommandText = sql;
komut.ExecuteNonQuery();
baglanti.Close();
Güncelleme işlemini TextBox1′ e girdiğimiz Öğrenci Numarasına göre yapalım. Örneğin 155 nolu Öğrencinin bilgilerini değiştirmek gibi. Bunun için Güncelle butonuna aşağıdaki kodları yazabiliriz.
C#:
OleDbCommand komut = new OleDbCommand();
OleDbConnection baglanti = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\ogrenci.xlsx; Extended Properties='Excel 12.0 xml;HDR=YES'");
baglanti.Open();
komut.Connection = baglanti;
string sql = "Update [Sayfa1$] set AD='"+textBox2.Text+"',SOYAD='"+textBox3.Text+"',SINIFI='"+textBox4.Text+"' WHERE NUMARA="+textBox1.Text+"";
komut.CommandText = sql; //www.realitycheats.com
komut.ExecuteNonQuery();
baglanti.Close();
Yukarıdaki örnekte bağlantıyı tekrar tekrar yazmak yerine Public olarak tanımlayabilirsiniz. İsterseniz veri seçme için bir metot oluşturarak Güncelleme ve Ekleme işlemlerinden sonra veya form açıldığında datagrid’ in güncellenmesini sağlayabilirsiniz.
Kodların bu şekilde düzenlenmiş hali ise aşağıdaki şekilde olacaktır.
C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
namespace csharp_excel_baglanti
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent(); //www.realitycheats.com
}
OleDbConnection baglanti = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\ogrenci.xlsx; Extended Properties='Excel 12.0 xml;HDR=YES;'");
public void doldur()
{
baglanti.Open();
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Sayfa1$]", baglanti);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt.DefaultView;
baglanti.Close();
}
private void button1_Click(object sender, EventArgs e)
{
doldur();
}
private void button2_Click(object sender, EventArgs e)
{
OleDbCommand komut = new OleDbCommand();
baglanti.Open();
komut.Connection = baglanti;
string sql = "Insert into [Sayfa1$] (NUMARA,AD,SOYAD,SINIFI) values('" + textBox1.Text + "','" + textBox2.Text + "','"+textBox3.Text+"','"+textBox4.Text+"')";
komut.CommandText = sql;
komut.ExecuteNonQuery();
baglanti.Close();//www.realitycheats.com
doldur();
}
private void button3_Click(object sender, EventArgs e)
{
OleDbCommand komut = new OleDbCommand();
baglanti.Open();
komut.Connection = baglanti;
string sql = "Update [Sayfa1$] set AD='"+textBox2.Text+"',SOYAD='"+textBox3.Text+"',SINIFI='"+textBox4.Text+"' WHERE NUMARA="+textBox1.Text+"";
komut.CommandText = sql;
komut.ExecuteNonQuery();
baglanti.Close();//www.realitycheats.com
doldur();
}
private void Form1_Load(object sender, EventArgs e)
{
doldur();
}
}
}