Makale Özeti

C# kullanarak SQL yedeklerini geri yükleme, SQL Restore

Makale

 

SQL Restore:

 

Bundan önceki makalem de SQL server üzerindeki databaseleri nasıl yedekleyebileceğimiz konusundan bahsetmiştim.

Bu makalede ise yedek dosyalarından nasıl geri yükleme işlemi yapabiliriz ondan bahsedeceğim.

 

Öncelikli olarak projemizi VisualStudio 2003 kullanarak yaptığımızı belirteyim.

 

Yeni bir proje oluşturuyoruz.

 

File / New / Project ‘den yeni bir proje oluşturuyoruz ve adını sqlBackUp-2 veriyoruz.

 

 

Formumuzun üzerine

 1 Adet ListBox ve

 1 Adet Buton koyuyoruz.

 

//baglantı cümlemizi tanımlıyoruz.

private string connectionstring = "Provider=sqloledb;data Source=server_name;uid=sa;password=pass;database=master";

//yedek dosyalarımzın oldugu dizin.

private string path = "C:\\";

 

 

Formumuzda boş biryerde çift tıklayarak, formumuzun yüklenmesi sırasında listbox nesnesine yedeklerimizin oldugu klasordeki yedek dosyarlımızı gösterecek kodu yazacağız.

 

 

private void Form1_Load(object sender, System.EventArgs e)

{

      listBox1.Items.Clear();

      listBox1.Items.Add(" -- Yedek Dosyaları -- ");

      DirectoryInfo dir = new DirectoryInfo(path);

      FileInfo[] backupfiles = dir.GetFiles("*.bak");

 

      foreach(FileInfo f in backupfiles)

      {

            listBox1.Items.Add(f.Name.ToString());

      }

}

 

 

Daha sonra Butonumuza çift tıklayarak. Yedeğimizi geri yükleyecek kodu yazıyoruz.

 

private void button1_Click(object sender, System.EventArgs e)

{

      string backupfile;

      string dbname = "DATABASE_ADI"; // geri yuklenecek database ismi.

 

      if(listBox1.SelectedIndex < 1)

      {

            MessageBox.Show("Yedek seciniz","Hata");

            return;

      }

      backupfile = listBox1.SelectedItem.ToString();

      // geri yükleme işlemini yapacak olan kodumuz.

string command = "RESTORE DATABASE "+dbname+" FROM DISK = '"+path+backupfile+"'";

      // Komutumuzu işletelim.

      OleDbConnection oleConn = new OleDbConnection(connectionstring);

      OleDbCommand myCommand = new OleDbCommand(command, oleConn);

      oleConn.Open();

      try

      {

            myCommand.ExecuteNonQuery();

            MessageBox.Show("Geri yükleme başarılı","Mesaj");

      }

      catch(Exception err)

      {

            MessageBox.Show(err.Message,"Hata");

      }

 

      oleConn.Close();

}

 

Eğer işlem hiç hata oluşmadan tamamlanırsa geri yüklemenin bittiğine dair bir mesaj alacağız.

 

 

 

Sorularınız ile ilgili mail yazabilirsiniz.

 

Serkan İÇER

serkan@serkan.biz

SQLBackup-2 Ornek Uygulama