C# ile Excel dosyasının yedeği nasıl alınır?

mgasilturk (31) 6 yıl önce sordu

Merhaba .

C# ile excele veri kaydediyorum,güncelliyorum vs(oledb ile) . Şuanda günün belli bir saatinde otomatik olarak ( ya da ilk aşama için butona tıkladığında da olabilir) excel dosyasının belirlenen klasöre kaydedilmesini istiyorum. Bu mümkün müdür? İnternet üzerinde access için yazılan kodlar buldum bunu excel için düzenlediğimde ise hata aldım. Yardımcı olabilicek biri var mı ?

Denediğim kod;

using System.Data.OleDb;
using System.IO;                          // kütüphaneleri eklemeyi unutmadım                        



 private void button1_Click(object sender, EventArgs e)
        {
            try  // try catch yapısı hata analizini sağlar
            {
                string a = DateTime.Now.ToShortDateString(); // bugünün tarihini kısaltarak kullandım
          string klasorYeri = Application.StartupPath;//Klasör yerini belirtiyoruz.(kurulduğu yer)
                string klasorAdi = a + " yedek";//Klasör adını belirtiyoruz.
                string klasorolustur = klasorYeri + @"\" + klasorAdi; //bu yere bu isimli klasör oluştur dedi
                Directory.CreateDirectory(klasorolustur);//yedek veritabanının yerini oluşturuyor.
                System.IO.File.Copy("kesincalis2.xlsx", klasorYeri + @"\" + a + " yedek\\" + "kesincalis2" + ".xlsx"); // veriler isimli veritabanı klasoroluşturdaki yere veriler adı ile kayıt edildi
                MessageBox.Show("Veritabanı " + klasorYeri + " klasörüne kaydedilmiştir", "Dikkat",
                  MessageBoxButtons.OK, MessageBoxIcon.Information);

            }
            catch
            {
                MessageBox.Show("Yedekleme sırasında bir hata oluştu." + "\n" + "Bu hatanın sebebi bugün başka bir yedeğin alınmış olması olabilir" + "\n" + Application.StartupPath + "\n" + "Burayı kontrol edebilirsiniz isterseniz bugünün yedeğini silip tekrar yedek alabilirsiniz.");
            }
        }

 

hakan 6 yıl önce

Soru başlıklarını küçük harf ile yazarsan çok iyi olur. uzmanim.net'te bu tür kurallara dikkat ediyoruz @mgasilturk

Toplam 1 cevap


alattin (16999) 6 yıl önce cevapladı

Soru sorarken dikkat etmen gerekenlerden biri de aldığın hatayı buraya aynen yazmalısın ki biz ne hata aldın bunu bilelim. Sorularına doyurucu cevap alabilmek için üşenmeden aldığın hataları ve tüm detayları yazmalısın. Biz nasıl cevap vermek için üşenmiyorsak, sen de bunu dikkate alırsan sevinirim.

Yazdığın kod çalışır. Kodunda bir hata yok. Fakat hatayı yazmadığın için sende neden çalışmıyor buna bir şey söyleyemem.

Eğer yedekleme belirli bir zamanda çalışsın istiyorsan önünde iki seçenek var:

  1. Servis yazmak
  2. Timer kullanmak

Servis yazarsan uygulama kapalı dahi olsa servis yedeği alır. 2. seçenek yani timer kullanırsan çalışması için uygulamanın çalışır olması gerekir.

mgasilturk 6 yıl önce

Could not find file 'kesincalis2.xlsx'

mgasilturk 6 yıl önce

Bu hatayı veriyor.

alattin 6 yıl önce

@mgasilturk kesincalis2.xlsx dosyasını bulamıyor uygulaman. kesincalis2.xlsx dosyan nerede? kesincalis2.xlsx adında bir dosyan var mı?

mgasilturk 6 yıl önce

Evet var bu dosyam ve bu dosyadan veri çekebiliyorum yazabiliyorum ancak yedekleme butonuna tıkladığımda bu hatayı veriyor. @alattin

mgasilturk 6 yıl önce

@alattin sorun çözüldü. Excel dosyam masaüstündeydi debug klasörünün içerisine atmamıştım. Dosyayı debug içerisine attım ve yedekleme yapıldı.

mgasilturk 6 yıl önce

@alattin yardımınız için çok teşekkür ederim.

alattin 6 yıl önce

rica ederim @mgasilturk