Ana Sayfa
Forumlar
Hakkımızda
Yükleniyor. Lütfen bekleyin ...
Kategoriler
ASP.NET
C# & VB.Net
Visual Studio ve Araçlar
Sharepoint
.NET Framework
SQL Server
Mobil Teknolojileri
Dynamics
Silverlight
İş Zekası
Windows Mobile Embedded
.Net Architect Advisor
0
Çıkış Yap
Üyelik Bilgilerimi Güncelle
Seminerlerim
Favorilerim
Ajanım
Yazgeliştir
Yazar olmak ister misiniz?
Forumlar
Kitap Önerileri
Haberler
Yazarlar
İpuçları
Görüşleriniz
Hakkımızda
İstatistikler
En son kayıt olan üye:
onemsiz222
Şuanki online üyeler (
4
) :
komochko
,
denizs
,
alkanreklam
,
bcayan
.NET Framework Kategorisi
»
Excel ve ADO.NET
Excel ve ADO.NET
Print Versiyonu
Yazar:
Engin Demiroğ
Tarih:02.12.2008
Puan:
3,83
(Oy Kullanan:
29
)
Okuma Sayısı:
2903
Makaleyi İşaretle
Makale Özeti
Klasik yöntemlerle excelden veri okumak ve yazmak ugrastirici olablmektedir ama Ado.Net’e hakimseniz bir iki ufak noktaya dikkat ederek, Ado.Net ile Excel’de veri okuma, veri ekleme ve güncelleme çok kolay hale gelmektedir.
Makale
Excel ve Ado.Net
Bu yazimda Ado.Net ile Excel’i aynen veritabani gibi kullanip veri getirme yöntemine deginecegiz.
Klasik yöntemlerle excelden veri okumak ve yazmak ugrastirici olablmektedir ama Ado.Net’e hakimseniz bir iki ufak noktaya dikkat ederek, Ado.Net ile Excel’de veri okuma, veri ekleme ve güncelleme çok kolay hale gelmektedir.
Simdi ise koyulalim.
1.Adim:
Bir adet Visual Studio Projesi olusturunuz.
2.Adim:
Bir adet Excel Dökümani olusturun ve adini deneme.xls (deneme.xlsx) birakin. Bu excel dosyasini Visual Studio projenizin debug klasörünün içerisine birakiniz.
3.Adim:
Form1’e 1 adet DataGridView, 3 adet Button ekleyiniz.
4.Adim:
Projenizde Project/Add Class ile bir adet class olusturunuz. Ben ismini Class1 olarak biraktim.
5.Adim:
Class1.cs sayfasini açiniz ve içerisine asagidaki kodlari ekleyiniz.
Eger Excel 2007 kullaniyorsaniz connection stringi asagidaki biçimde düzeltiniz.
OleDbConnection
baglanti =
new
OleDbConnection
(
"Data Source=deneme.xlsx;Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0"
);
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Data.OleDb;
//Sizde Ekleyiniz.
using
System.Data;
//Sizde Ekleyiniz.
namespace
WindowsFormsApplication9
{
class
Class1
{
OleDbConnection
baglanti =
new
OleDbConnection
(
"Data Source=deneme.xls;Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=Excel 8.0"
);
OleDbCommand
komut;
public
DataTable
ExcelVerileriniGetir()
//Veri Okuma
{
komut =
new
OleDbCommand
(
"select * from [Sayfa1$]"
,baglanti);
if
(baglanti.State ==
ConnectionState
.Closed)
{
baglanti.Open();
}
OleDbDataReader
oku = komut.ExecuteReader();
DataTable
dt =
new
DataTable
();
dt.Load(oku);
return
dt;
}
public
void
KayitYap(
string
adi,
string
soyadi)
//Yeni Kayit Ekleme
{
komut =
new
OleDbCommand
(
"insert into [Sayfa1$] values (@adi,@soyadi)"
, baglanti);
komut.Parameters.Add(
"@deger1"
,
OleDbType
.VarChar,50).Value=adi;
komut.Parameters.Add(
"@deger2"
,
OleDbType
.VarChar, 50).Value = soyadi;
if
(baglanti.State ==
ConnectionState
.Closed)
{
baglanti.Open();
}
komut.ExecuteNonQuery();
}
public
void
KayitGuncelle(
string
DegisecekAd,
string
DegistirilecekAd)
//Kayit Güncelleme
{
komut =
new
OleDbCommand
(
"update [Sayfa1$] set ADI=@DegisecekAd where ADI=@DegistirilecekAd"
, baglanti);
komut.Parameters.Add(
"@DegisecekAd"
,
OleDbType
.VarChar, 50).Value = DegisecekAd;
komut.Parameters.Add(
"@DegistirilecekAd"
,
OleDbType
.VarChar, 50).Value = DegistirilecekAd;
if
(baglanti.State ==
ConnectionState
.Closed)
{
baglanti.Open();
}
komut.ExecuteNonQuery();
}
}
}
Burada tüm kullanim normal veri tabanlarina benzemektedir. Dikkat etmeniz gereken nokta yani normal veritabanlarindan farklilik gösteren noktalar;
Connection String de ki
Extended Properties
özelligi,
OledbCommand nesnesindeki sql komutunda excel sayfalarinin “[]” içerisine konulup sayfa isminin sonuna “$” isareti getirilmesidir. Bizde [Sayfa1$] seklinde olduguna dikkat ediniz.
Simdi formunuza gelerek her bir butonun Click Eventine;
Class1
yeni =
new
Class1
();
//Class1 den yavru degisken türetildi.
private
void
button1_Click(
object
sender,
EventArgs
e)
{
dataGridView1.DataSource = yeni.ExcelVerileriniGetir();
//Veriler DatagridView’e aktarildi.
}
private
void
button2_Click(
object
sender,
EventArgs
e)
{
yeni.KayitYap(
"Gülser"
,
"Demirog"
);
//Yeni Kayit ekleniyor.
}
private
void
button3_Click(
object
sender,
EventArgs
e)
{
yeni.KayitGuncelle(
"Gözde"
,
"Nafiye"
);
//Kayit Güncceleme islemi,Nafiye isimleri Gözde oldu.
}
Diger yazilarimda görüsmek üzere.
Engin Demiroğ
MCSE-MCSD.NET
engin@e-learner.net
www.yazilimdevi.com
Makaleyi nasıl buldunuz?
Makaleyi nasıl buldunuz?
Çok Kötü
Çok Yararlı
Görüşleriniz : (opsiyonel)
v2.4
Geri Bildirim (Feedback)
Site içerisinde yazılan tüm makalelerin yazım ve yayınlama hakkı aksi belirtilmediği sürece sadece yazarlara aittir.
Yazgelistir.Com Ekibi - 2006 -
Yazgelistir.com