سلام دوستان
چجوری می تونم از دیتابیس SQl توی برنامم بک آپ وردارم که درصد پیشرفت رو نشون بده(ProgressBar)؟
میشه راهنمایی کنید؟
ممنون
سلام دوستان
چجوری می تونم از دیتابیس SQl توی برنامم بک آپ وردارم که درصد پیشرفت رو نشون بده(ProgressBar)؟
میشه راهنمایی کنید؟
ممنون
بفرمایید این کد بکاپ گیری به همراه ProgressBar که درصد انجام پردازش رو نشان میده چقدر مانده تا بکاپ گرفته بشه.
public void Backup_DataBase()
{
DialogResult dr;
dr = PersianMessageBox.Show("آیا مایلید نسخه پشتیبان از اطلاعات خود تهیه فرمایید", "تهیه نسخه پشتیبان", PersianMessageBox.Buttons.YesNo, PersianMessageBox.Icon.Question);
if (dr == DialogResult.Yes)
{
try
{
System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar();
string date = pc.GetYear(DateTime.Now) + "-" + pc.GetMonth(DateTime.Now) + "-" +
pc.GetDayOfMonth(DateTime.Now);
System.Globalization.PersianCalendar pcc = new System.Globalization.PersianCalendar();
DateTime tm = new DateTime();
tm = DateTime.Now;
string timenow = pcc.GetHour(tm).ToString() + "_" + pcc.GetMinute(tm).ToString() + "_" +
pcc.GetSecond(tm).ToString();
SaveFileDialog savefiledialog = new SaveFileDialog();
savefiledialog.AddExtension = true;
savefiledialog.CheckFileExists = false;
savefiledialog.OverwritePrompt = true;
savefiledialog.FileName = "Backup_FileDataBase" + date + " " + timenow;
savefiledialog.Filter = @"(*.bak) پشتیبان گیری|*.bak";
savefiledialog.Title = "پشتیبان گیری";
savefiledialog.DefaultExt = "Bak";
savefiledialog.RestoreDirectory = true;
if (savefiledialog.ShowDialog() == DialogResult.OK)
{
try
{
SqlCommand cmd = new SqlCommand();
cmd.Connection =
new SqlConnection(
@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DBCASSABNS.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;
progressBar1.Visible = true;
progressBar1.PerformStep();
progressBar1.Value = 0;
progressBar1.Visible = false;
cmd.ExecuteNonQuery();
cmd.Connection.Close();
PersianMessageBox.Show("نسخه پشتيبان به طور كامل ايجاد شد.", "پشتیبان گیری",
PersianMessageBox.Buttons.OK, PersianMessageBox.Icon.None);
}
catch (Exception ex)
{
if (!ShowFriendMeesage)
PersianMessageBox.Show(ex.Message);
else
PersianMessageBox.Show("اشکال در پشتیان گیری /خطا 102", "خطا",
PersianMessageBox.Buttons.OK, PersianMessageBox.Icon.Error);
}
}
}
catch
{
}
}
ممنون خیلی کمکم کردین
از کد شما استفاده کردم ، اما پروگرس بار نمایش داده نشد
یعنی چون دیتابیس من سبکه اصلا نشون نداد ؟
شرمنده دوست عزیز یک سوتی کوچک دادم تو سروس اصلاح شد.
DialogResult dr;
dr = PersianMessageBox.Show("آیا مایلید نسخه پشتیبان از اطلاعات خود تهیه فرمایید", "تهیه نسخه پشتیبان",
PersianMessageBox.Buttons.YesNo, PersianMessageBox.Icon.Question);
if (dr == DialogResult.Yes)
{
try
{
System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar();
string date = pc.GetYear(DateTime.Now) + "-" + pc.GetMonth(DateTime.Now) + "-" +
pc.GetDayOfMonth(DateTime.Now);
System.Globalization.PersianCalendar pcc = new System.Globalization.PersianCalendar();
DateTime tm = new DateTime();
tm = DateTime.Now;
string timenow = pcc.GetHour(tm).ToString() + "_" + pcc.GetMinute(tm).ToString() + "_" +
pcc.GetSecond(tm).ToString();
SaveFileDialog savefiledialog = new SaveFileDialog();
savefiledialog.AddExtension = true;
savefiledialog.CheckFileExists = false;
savefiledialog.OverwritePrompt = true;
savefiledialog.FileName = "Backup_FileDataBase" + date + " " + timenow;
savefiledialog.Filter = @"(*.bak) پشتیبان گیری|*.bak";
savefiledialog.Title = "پشتیبان گیری";
savefiledialog.DefaultExt = "Bak";
savefiledialog.RestoreDirectory = true;
if (savefiledialog.ShowDialog() == DialogResult.OK)
{
try
{
SqlCommand cmd = new SqlCommand();
cmd.Connection =
new SqlConnection(
@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DBCASSABNS.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();
//progressBar1.Visible = true;
progressBar1.PerformStep();
progressBar1.Value = 100;
//progressBar1.Visible = false;
PersianMessageBox.Show("نسخه پشتيبان به طور كامل ايجاد شد.", "پشتیبان گیری",
PersianMessageBox.Buttons.OK, PersianMessageBox.Icon.None);
}
catch (Exception ex)
{
if (!ShowFriendMessageFrmRestore)
PersianMessageBox.Show(ex.Message);
else
PersianMessageBox.Show("اشکال در پشتیان گیری /خطا 102", "خطا",
PersianMessageBox.Buttons.OK, PersianMessageBox.Icon.Error);
}
}
}
catch
{
}
این سورس تست شده و 100 درصد جواب میده. فقط به سلیقه خودتون ربط داره
مخفی وقتی بارگزاری کرد پور بشه یا بکاپ بگیره progressbar که وقتی پور شد مخفی بشه
progressbar
[QUOTE=davidrobert;1940334]بفرمایید این کد بکاپ گیری به همراه ProgressBar که درصد انجام پردازش رو نشان میده چقدر مانده تا بکاپ گرفته بشه.
progressbar کو