C# ile SQL Veritabanı Yedeğini Alma

Merhaba arkadaşlar,
Bugün sizlere C# ile veritabanı yedeğini almayı anlatmaya çalışacağım. Öncelikle veritabanı türümüzü SQL olarak belirledik. MYSQL ve ACCES gibi veritabanlarına kendi yöntemlerinizle uyarlayabilirsiniz.
Sql veritabanı yedeğini almak için bilmemiz gerek bilgiler:


  • Varsa veritabanı kullanıcı adı şifre
  • Sunucu adı
  • Yedek alınacak veritabanı adı

Yukarıda görüldüğü gibi form tasarımı yaptım siz daha farklı yazabilirsiniz. Formunuzda olması gereken araçlar şu şekilde olmalıdır.

  • 2 Adet RadioButton
  • 4 Adet Label
  • 4 Adet TextBox
  • 1 Adet Button
Program şu şekilde çalışıyor:
Eğer bir login kullanıcı belirlemişseniz Kullanıcı adım var butonuna tıklıyorsunuz ve yedek alınacak veritabanı adı, sunucuadı, kullanıcı adı ve şifresi bilgilerini giriyorsunuz. Eğer login kullanıcısı yoksa Windows Autentication Mode ile giriş yapıyorsunuz. Sunucu adınızı bilmiyorsanız şuradan alabilirsiniz:

Ya da bunu bilmiyorsanız BilgisayarınızınAdı\SQLEXPESS şeklinde deneyebilirsiniz. İnternette de Sql Server Sunucu Adı bulma gibi aramalarla bulabilirsiniz. Şimdi Kodlara geçelim.

Eklememiz gereken kütüphaneler :

using System.Data.Sql;
using System.Data.SqlClient; // Eklememiz gereken kütüphaneler

RadioButton1 ve RadioButton2 içerisine yazacağımız kodlar:

   private void radioButton1_CheckedChanged(object sender, EventArgs e)//Kullanıcı Adım Var
        {
            textBox3.Enabled = true;
            textBox4.Enabled = true;
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)//Kullanıcı Adım Yok
        {
            textBox3.Enabled = false;
            textBox4.Enabled = false;//radiobutonlara tıkladıgımızda textboxları görünür yada gizleme işlemleri yaptık.
        }

Ve en son Yedek Al butonu içine eklememiz gereken kodlar şu şekilde olmalıdır :


            if(textBox1.Text !="" && textBox2.Text != "")
            {
                SqlConnection con = new SqlConnection();
                if (radioButton1.Checked)//radiobuton1 seçildiyse yani kullanıcı adı varsa   //baglantıcumlemuz soyle olacak
                    con = new SqlConnection("Data Source=" + textBox2.Text + ";Initial Catalog=" + textBox1.Text + ";Persist Security Info=True; User ID =" + textBox3.Text + "; Password=" + textBox4.Text + "");
                else if (radioButton2.Checked)//yani kullanıcı adı ve şifre kullanmadan işlem yapıalcaksa.
                    con = new SqlConnection("Server=" + textBox2.Text + "; Database=" + textBox1.Text + ";Trusted_Connection=True;"); // bu veritabanına erişmemiz için şifreisz yöntem. Client sunucular için kullanılabilir.
                else
                    MessageBox.Show("Lütfen seçim yapın !");
                //Şimdi yine biz sunucu ve veritabanı verileri girilmemişse hata verdirelim kontrol amaçlı. önemli iki alan bu
                string Komutcumle = "BACKUP DATABASE " + textBox1.Text + " TO DISK = '" + Application.StartupPath + "\\" + DateTime.Now.ToString("yyyyMMdd") + ".bak'";
                //üstte ilk parametre veritabanı adı ikinici parametre programın calıstıgı yolu alıyor ve gunun tarihi ile .bak uzantılı dosya olusturyyor.
                //bu dosyayı veritabanında restore database diyerek içeri alabiliriz.
                SqlCommand komut = new SqlCommand(Komutcumle, con);
                con.Open();
                komut.ExecuteNonQuery();
                con.Close();
                MessageBox.Show("Yedek işlemi alındı ");

            }

Program çalıştığı dizine yedek almaktadır. Eğer başla dizine yedek almak istersek Application.StarupPath kodunun yerine dizinimizi yazabiliriz. Yada seçtirmek istiyorsak OpenFileDialogİle yol seçimi yaptırabiliriz. Yedek adı, yedek alındığı tarih.bak şeklinde olmaktadır. Bunu değiştirmek içinde DateTime.Now.ToString("yyyyMMdd") kodunun yerine istediğimiz isim yazılabilir.

Detaylı eğitim videosunu izlemek için linke gidebilirsiniz.

Video Link :
https://youtu.be/KAJwZ7DyjDQ

(Youtube Kanalımdan İzlemeniz benim yararıma bu sebeple linke ile yönlendiriyorum.)

Yorumlar

Bu blogdaki popüler yayınlar

Yazıcıda Bekleyen Belgeleri Hızlıca Temizleme

SQL SERVER'da sa ve diğer kullanıcıları aktif etme