Soru Geçmişi
11.11.19 12:12
Veritabanı Yedeklemesi Sırasında Erişim Engeli
Merhaba, Daha önceden Access veri tabanı kullanıyordum ve SQL veri tabanına geçiş yaptım. Sql veri tabanını yedeklerken dosya erişimi hatası alıyorum. Kullanmış olduğum ilk kod bloku şu şeklide; ve burada herhangi bir hata almıyorum. ... private void YedekAl_Lokal()
{
string klasorYeri = "C:\\Uygulama Yedek";
string klasorolustur = klasorYeri + @"\";
Directory.CreateDirectory(klasorolustur);
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(klasorYeri);
System.IO.FileInfo[] fis = di.GetFiles("*.bak");
if (fis.Length == 0 || (DateTime.Now - fis.Max(d => d.CreationTime)).TotalDays >= 3)
{
string database = bağ.Database.ToString();
try
{
string yol = "C:\\Uygulama Yedek";
string cmd = "BACKUP DATABASE [" + database + "] TO DISK='" + yol + "\\" + DateTime.Now.ToString("dd.MM.yyyy_hhmmss") + "-Veriler_SQL" + ".bak'";
using (SqlCommand command = new SqlCommand(cmd, bağ))
{
if (bağ.State != ConnectionState.Open)
{
bağ.Open();
}
command.ExecuteNonQuery();
bağ.Close();
MessageBox.Show("Veritabanı Yedeklenmiştir...");
}
}
catch (Exception HATA)
{
MessageBox.Show(HATA.Message);
return;
}
}
} Hata almış olduğum diğer kod bloku ise şu şekilde; Burada google drive klasörüne erişim engelleniyor. ...private void YedekAl_Drive()
{
string database = bağ.Database.ToString();
try
{
string klasorYeri2 = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Google Drive", "Uygulama", "Raporlar", "Genel Ortak Paylaşım", "Yedek");
string klasorYeri = "C:\\Uygulama Yedek";
string klasorolustur = klasorYeri + @"\";
string klasorolustur2 = klasorYeri2 + @"\";
Directory.CreateDirectory(klasorolustur);
Directory.CreateDirectory(klasorolustur2);
string yol = klasorYeri;
string yol2 = klasorYeri2;
string cmd = "BACKUP DATABASE [" + database + "] TO DISK='" + yol + "\\" + DateTime.Now.ToString("dd.MM.yyyy_hhmmss") + "-Veriler_SQL" + ".bak'";
string cmd2 = "BACKUP DATABASE [" + database + "] TO DISK='" + yol2 + "\\" + DateTime.Now.ToString("dd.MM.yyyy_hhmmss") + "-Veriler_SQL" + ".bak'";
using (SqlCommand command = new SqlCommand(cmd, bağ))
{
if (bağ.State != ConnectionState.Open)
{
bağ.Open();
}
command.ExecuteNonQuery();
bağ.Close();
}
using (SqlCommand command2 = new SqlCommand(cmd2, bağ))
{
if (bağ.State != ConnectionState.Open)
{
bağ.Open();
}
command2.ExecuteNonQuery();
bağ.Close();
MessageBox.Show("Veritabanı Drive Klasörüne" + Environment.NewLine + "ve" + Environment.NewLine + "C:\\UygulamaYedek klasörüne yedeklenmiştir...");
}
}
catch (Exception HATA)
{
MessageBox.Show(HATA.Message);
return;
}
} Yardımlarınızı bekliyorum. Kolay gelsin.
Ekleyen: hakandogan
Değiştiren: hakandogan
11.11.19 12:11
Veritabanı Yedeklemesi Sırasında Erişim Engeli
Merhaba, Daha önceden Access veri tabanı kullanıyordum ve SQL veri tabanına geçiş yaptım. Sql veri tabanını yedeklerken dosya erişimi hatası alıyorum. Kullanmış olduğum ilk kod bloku şu şeklide; ve burada herhangi bir hata almıyorum. ... private void YedekAl_Lokal()
{
string klasorYeri = "C:\\Uygulama Yedek";//Klasör yerini belirtiyoruz.(kurulduğu yer)
string klasorolustur = klasorYeri + @"\"; //bu yere bu isimli klasör oluştur dedi
Directory.CreateDirectory(klasorolustur);
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(klasorYeri);
System.IO.FileInfo[] fis = di.GetFiles("*.bak");
if (fis.Length == 0 || (DateTime.Now - fis.Max(d => d.CreationTime)).TotalDays >= 3)
{
string database = bağ.Database.ToString();
try
{
string yol = "C:\\Uygulama Yedek"; string cmd = "BACKUP DATABASE [" + database + "] TO DISK='" + yol + "\\" + DateTime.Now.ToString("dd.MM.yyyy_hhmmss") + "-Veriler_SQL" + ".bak'";
using (SqlCommand command = new SqlCommand(cmd, bağ))
{
if (bağ.State != ConnectionState.Open)
{
bağ.Open();
}
command.ExecuteNonQuery();
bağ.Close();
MessageBox.Show("Veritabanı Yedeklenmiştir...");
}
}
catch (Exception HATA)
{
MessageBox.Show(HATA.Message);
return;
}
}
} Hata almış olduğum diğer kod bloku ise şu şekilde; Burada google drive klasörüne erişim engelleniyor. ...private void YedekAl_Drive()
{
string database = bağ.Database.ToString();
try
{
string klasorYeri2 = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Google Drive", "Uygulama", "Raporlar", "Genel Ortak Paylaşım", "Yedek");
string klasorYeri = "C:\\Uygulama Yedek";//Klasör yerini belirtiyoruz.(kurulduğu yer) string klasorolustur = klasorYeri + @"\"; //bu yere bu isimli klasör oluştur dedi
string klasorolustur2 = klasorYeri2 + @"\";
Directory.CreateDirectory(klasorolustur);
Directory.CreateDirectory(klasorolustur2);
string yol = klasorYeri;
string yol2 = klasorYeri2;
string cmd = "BACKUP DATABASE [" + database + "] TO DISK='" + yol + "\\" + DateTime.Now.ToString("dd.MM.yyyy_hhmmss") + "-Veriler_SQL" + ".bak'";
string cmd2 = "BACKUP DATABASE [" + database + "] TO DISK='" + yol2 + "\\" + DateTime.Now.ToString("dd.MM.yyyy_hhmmss") + "-Veriler_SQL" + ".bak'";
using (SqlCommand command = new SqlCommand(cmd, bağ))
{
if (bağ.State != ConnectionState.Open)
{
bağ.Open();
}
command.ExecuteNonQuery();
bağ.Close();
}
using (SqlCommand command2 = new SqlCommand(cmd2, bağ))
{
if (bağ.State != ConnectionState.Open)
{
bağ.Open();
}
command2.ExecuteNonQuery();
bağ.Close();
MessageBox.Show("Veritabanı Drive Klasörüne" + Environment.NewLine + "ve" + Environment.NewLine + "C:\\UygulamaYedek klasörüne yedeklenmiştir...");
}
}
catch (Exception HATA)
{
MessageBox.Show(HATA.Message);
return;
}
} Yardımlarınızı bekliyorum. Kolay gelsin.
Ekleyen: hakandogan
En fazla 3 eski durum gösterilir.