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

0

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.");
            }
        }

 

mgasilturk mgasilturk (31)
2 yıl önce sordu

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

Toplam 1 Cevap


0

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.

alattin alattin (14655)
2 yıl önce cevaplandı

  • Could not find file 'kesincalis2.xlsx' mgasilturk 2 yıl önce
  • Bu hatayı veriyor. mgasilturk 2 yıl önce
  • @mgasilturk kesincalis2.xlsx dosyasını bulamıyor uygulaman. kesincalis2.xlsx dosyan nerede? kesincalis2.xlsx adında bir dosyan var mı? alattin 2 yıl önce
  • Evet var bu dosyam ve bu dosyadan veri çekebiliyorum yazabiliyorum ancak yedekleme butonuna tıkladığımda bu hatayı veriyor. @alattin mgasilturk 2 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 2 yıl önce
  • @alattin yardımınız için çok teşekkür ederim. mgasilturk 2 yıl önce
  • rica ederim @mgasilturk alattin 2 yıl önce

üyelik gerektirir

Cevap yazabilmek için üye girişi yapmalısınız.

Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol