PDA

View Full Version : سوال: نمایش درصد پیشرفت هنگام پشتیبان گیری (LoadingProgressBar)



shahramap
چهارشنبه 23 مرداد 1392, 22:58 عصر
میخواهم هنگام پشتیبان گیری درصد پیشرفت هم نمایش داده بشه؟ کسی در این رابطه کدی داره؟؟

davidrobert
پنج شنبه 24 مرداد 1392, 10:34 صبح
بفرمایید ان کد برای درصد پیشرفت پشتیبان گیری و ریستور کردن می باشد. که درصد پیشرفت رو با برچسب نشون بدی اگه دیو کامپوننت استفاده کنی میتونی درصد پیشرفت روی خود progressbar نشون بدی اگه خود دات نت استفاده کنی در بر چسب نشون باید بدی.

////using (var back = new ClsBackupRestore())
////{
//// back.RestoreMYDB();
////}

////کد پشتیان گیری اطلاعات
//try
//{
// string bname = DateTime.Now.ToString("yyyy-MM-dd-HH-mm");
// SaveFileDialog saveFileDialog = new SaveFileDialog();
// saveFileDialog.AddExtension = true;
// saveFileDialog.CheckFileExists = false;
// saveFileDialog.CheckPathExists = true;
// saveFileDialog.OverwritePrompt = true;
// saveFileDialog.FileName = "Backup" + bname;
// saveFileDialog.Filter = " (*.Bak) فایل پشتیبانی|*.Bak";
// saveFileDialog.Title = "پشتیبان گیری";
// saveFileDialog.DefaultExt = "Bak";
// saveFileDialog.RestoreDirectory = true;
// saveFileDialog.InitialDirectory = System.Windows.Forms.Application.StartupPath;
// if (saveFileDialog.ShowDialog() == DialogResult.OK)
// {
// try
// {
// this.Refresh();
// SqlCommand cmd = new SqlCommand();
// cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DbPoshakSayeBan.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
// cmd.Connection.Open();
// string dbname = cmd.Connection.Database;//گرفتن نام دیتابیس
// cmd.Connection.Close();
// SqlConnection.ClearAllPools();
// string query = "BACKUP DATABASE [" + dbname + "] TO DISK ='" + saveFileDialog.FileName + "'";
// cmd.Connection = new SqlConnection("Data Source=.\\sqlexpress;Integrated Security=True;Connect Timeout=30;User Instance=True");
// cmd.Connection.Open();
// cmd.CommandText = query;
// cmd.ExecuteNonQuery();
// cmd.Connection.Close();
// this.Refresh();
// progressBar1.PerformStep();
// progressBar1.Value = 100;
// FarsiMessegeBox.Show("نسخه پشتيبان به طور كامل ايجاد شد ", "پيام", FMessegeBoxButtons.Ok, FMessegeBoxIcons.Information);
// progressBar1.Value = 0;
// }
// catch
// {
// FarsiMessegeBox.Show("خطا در پشتیبان گیر اطلاعاتت", "خطا", FMessegeBoxButtons.Ok, FMessegeBoxIcons.Error);
// }
// }
//}
//catch
//{

//}



//کد بازیابی اطلاعات
PersianMessageBox.Show("آیا مطمئن هستید برای بازیابی اطلاعات در صورت بازیابی اطلاعات اطلاعات قبلی از بین میرود و اطلاعات جدید جایگزین مشیود.", "هشدار", PersianMessageBox.Buttons.OK, PersianMessageBox.Icon.Warning);
try
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.AddExtension = true;
openFileDialog.CheckFileExists = false;
openFileDialog.CheckPathExists = true;
openFileDialog.Filter = "(*.bak) فایل پشتیبانی |*.bak";
openFileDialog.Title = "بازیابی فایل پشتیانی";
openFileDialog.DefaultExt = "Bak";
openFileDialog.RestoreDirectory = true;
openFileDialog.InitialDirectory = System.Windows.Forms.Application.StartupPath;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
this.Refresh();
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DbPoshakSayeBan.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;
cmd.Connection.Close();
string query = "ALTER DATABASE [" + dbname + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ;RESTORE DATABASE [" + dbname + "] FROM DISK = '" + openFileDialog.FileName + "';ALTER DATABASE [" + dbname + "] SET MULTI_USER ;";
cmd.Connection = new SqlConnection("Data Source=.\\sqlexpress;Integrated Security=True;Connect Timeout=30;User Instance=True");
cmd.Connection.Open();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
cmd.Connection.Close();
progressBar1.PerformStep();
progressBar1.Value = 100;
label1.Visible = true;
label1.Text = "%" + progressBar1.Value.ToString();
FarsiMessegeBox.Show("نسخه پشتيبان به طور كامل بازيابي شد ", "پيام", FMessegeBoxButtons.Ok, FMessegeBoxIcons.Information);
FarsiMessegeBox.Show("برنامه باید دوباره راه اندازی شود ", "هشدار", FMessegeBoxButtons.Ok, FMessegeBoxIcons.Information);
Application.Restart();
progressBar1.Value = 0;
}
catch (Exception ex)
{
if (!showmeesage)
FarsiMessegeBox.Show(ex.Message);
else
FarsiMessegeBox.Show("اشکال در بازگردانی پایگاه داده / خطا 102", "خطا", FMessegeBoxButtons.Ok, FMessegeBoxIcons.Error);
}
}

}
catch
{

}