C# İle Excel'den Veritabanına Kayıt Ekleme

C# kullanarak excel sayfasındaki verileri projemizdeki veritabanına eklemek için birkaç satır kod yazmamız yeterli aslında.

Udemy'de bulunan eğitim serisi için (C# ile Barkodlu Satış Programı Yapımı) küçük bir örnek yaptım. O proje için kullandığım kodları

kendi projenizde kolaylıkla kullanabilirsiniz. Veritabanı olarak SqlLocalDb kullandım, farklı veritabanı da kullanabilirsiniz.

Youtube den izleyebilirsiniz

Youtube video için tıklayınız...

İlk olarak bir form oluşturuyoruz, içerisine iki adet buton ve bir datagridview ekliyoruz.

Excel sayfasının formatını veritabanı alanlarına uygun olarak ayarlayınız.

"Microsoft.Ace.OleDb.12.0 sağlayıcısı yerel makine kayıtlı değil" gibi bir hata alma ihtimaline karşı AccessDatabaseEngine dosyasını indiriniz.

Excel Dosyası Seç butonu altına şu kodları yazınız


Kaydet butonuna ise aşağıdaki kodları yazıyoruz

        BarkodDbEntities db = new BarkodDbEntities(); // Benim veritabanı contextim

        private void bKaydet_Click(object sender, EventArgs e)

        {

            try

            {

                Cursor.Current = Cursors.WaitCursor;

                int satir = dataGridView1.Rows.Count;

                if (satir > 0)

                {

                    for (int i = 0; i < satir; i++)

                    {

                        string barkod = dataGridView1.Rows[i].Cells["Barkod"].Value.ToString();

                        if (db.Urun.Any(x => x.Barkod == barkod))

                        {

                            var urunvar = db.Urun.FirstOrDefault(x => x.Barkod == barkod);

                            urunvar.AlisFiyat = Convert.ToDouble(dataGridView1.Rows[i].Cells["AlisFiyat"].Value.ToString());

                            urunvar.SatisFiyat = Convert.ToDouble(dataGridView1.Rows[i].Cells["SatisFiyat"].Value.ToString());

                            urunvar.Miktar += Convert.ToDouble(dataGridView1.Rows[i].Cells["Miktar"].Value.ToString());

                            urunvar.KdvTutari = Convert.ToDouble(dataGridView1.Rows[i].Cells["KdvTutari"].Value.ToString());

                            db.SaveChanges();

                        }

                        else

                        {

                            Urun urun = new Urun();

                            urun.Barkod = dataGridView1.Rows[i].Cells["Barkod"].Value.ToString();

                            urun.UrunAd = dataGridView1.Rows[i].Cells["UrunAd"].Value.ToString();

                            urun.Aciklama = dataGridView1.Rows[i].Cells["Aciklama"].Value.ToString();

                            urun.UrunGrup = dataGridView1.Rows[i].Cells["UrunGrup"].Value.ToString();

                            urun.AlisFiyat = Convert.ToDouble(dataGridView1.Rows[i].Cells["AlisFiyat"].Value.ToString());

                            urun.SatisFiyat = Convert.ToDouble(dataGridView1.Rows[i].Cells["SatisFiyat"].Value.ToString());

                            urun.KdvOrani = Convert.ToInt32(dataGridView1.Rows[i].Cells["KdvOrani"].Value.ToString());

                            urun.KdvTutari = Convert.ToDouble(dataGridView1.Rows[i].Cells["KdvTutari"].Value.ToString());

                            urun.Birim = dataGridView1.Rows[i].Cells["Birim"].Value.ToString();

                            urun.Miktar = Convert.ToDouble(dataGridView1.Rows[i].Cells["Miktar"].Value.ToString());

                            urun.Tarih = DateTime.Now;

                            urun.Kullanici = "Admin";

                            urun.Onay = true;

                            db.Urun.Add(urun);

                            db.SaveChanges();

                        }

                    }

                }

                Cursor.Current = Cursors.Default;

                MessageBox.Show("Yükleme Tamamlanmıştır");

            }

            catch (Exception hata)

            {

                MessageBox.Show("Bir hata oluştu..." + Environment.NewLine + hata.ToString());

            }


        }


Son olarak test

iyi çalışmalar



Etiketler
c# excel excel'den veritabanına kayıt C# excel kayıt
ipek çetin | Tarih : 01.03.2021

Merhaba, BarkodDbEntities db = new BarkodDbEntities(); çalışması için Entity Framework bağlantısını mı yapmak gerekli?

| Tarih : 01.03.2021

Evet, bunu excelden aktarma işini projemiz için yapmıştım. Projemizde de entity framework kullandık. 


ipek çetin | Tarih : 03.03.2021

peki framework kullanmadan nasıl yapabilirim?

| Tarih : 04.03.2021

Excel e bağlanıp verileri nasıl çekiyorsak aynı şekilde veritabanına bağlanımalıyız. Ado. Net ile. Bağlantı için SqlConnection (excel için OleDbConnection kullanmıştık) , veri ekleme için SqlCommand kullanırız (insert into Urun..... diye sorgu yazmalıyız). 

Ama uzun olur bu şekilde. Siz entityframework kullanın benceExcel e bağlanıp verileri nasıl çekiyorsak aynı şekilde veritabanına bağlanımalıyız. Ado. Net ile. Bağlantı için SqlConnection (excel için OleDbConnection kullanmıştık) , veri ekleme için SqlCommand kullanırız (i nsert into Urun..... diye sorgu yazmalıyız


Alper ÖZ | Tarih : 10.08.2021

Reis blogların devamı ne zaman gelecek

Mesaj Yaz