PDA

View Full Version : حذف فایل بکاپ درون پوشه برنامه



vapa_71
پنج شنبه 05 بهمن 1391, 09:07 صبح
سلام دوستان چون اون تایپیک قبلی دیگه خیلی در هم بر هم شده بود و چون هنوز مشکلم حل نشده این تایپیک رو زدم

من الان 3 روزه دنبال کد بکاپ گیری و ریستور کردن هستم اما متاسفانه اکثر کد هایی که هست جواب نمیده یا مثلا یک کد بکاپش جواب میده اما ریستورشو ندارم اکثر کد های توی این سایت رو هم چک کردم

حالا یک کد دارم که هم بکاپش جواب میده هم ریستور اما بکاپ گیریش 1 مشکل داره اونم اینه که وقتی اولین بار بکاپ میگیرید واسه بارهای بعدی اون فایل بکاپ قبلی رو پاک نمیکنه که بکاپ جدید جای اون ذخیره بشه
فایل بکاپ درون خود پوشه برنامه ساخته میشه
اینم کد


SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\Report_db.mdf;Integrated Security=True;Connect Timeout=10;User Instance=True");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;//'گرفتن نام کامل دیتابیس
cmd.Connection.Close();

SqlConnection.ClearAllPools();
string query = "BACKUP DATABASE [" + dbname + "] TO DISK ='" + Application.StartupPath + "\\backup.bak'";
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();
MessageBox.Show("database backup: ok");

danialafshari
پنج شنبه 05 بهمن 1391, 09:21 صبح
سلام دوست عزیز
کلا پاک کردن فایل بکاپ کار اشتباهیه باید بکاپ در کنار فایل قبلی قرار بگیره (اگر در نرم افزارهای حسابداری مثل هلو دیده باشید از این روش استفاده شده)
شما می تونی نام فایل رو از DateTime و ساعتش بگیری که نام فایل های بکاپ متفاوت باشه و دچار خطا نشه
موفق باشی

vapa_71
پنج شنبه 05 بهمن 1391, 09:32 صبح
سلام دوست عزیز
کلا پاک کردن فایل بکاپ کار اشتباهیه باید بکاپ در کنار فایل قبلی قرار بگیره (اگر در نرم افزارهای حسابداری مثل هلو دیده باشید از این روش استفاده شده)
شما می تونی نام فایل رو از DateTime و ساعتش بگیری که نام فایل های بکاپ متفاوت باشه و دچار خطا نشه
موفق باشی

شما اگه اون فایل ریستور اون کد بکاپ که دادی رو به ما برسونی که کلا مشکل حله
در این مورد هم اگه میشه لطفا با کد جواب بدین

danialafshari
پنج شنبه 05 بهمن 1391, 09:37 صبح
backup.bak

به جای نام backup بزارش از یک متغیر String بگیره!
برای پر کردن متغیر هم از dateTime استفاده کن

اون بک آپ هم کد ریستورش خراب بود

vapa_71
پنج شنبه 05 بهمن 1391, 09:40 صبح
به جای نام backup بزارش از یک متغیر String بگیره!
برای پر کردن متغیر هم از dateTime استفاده کن

اون بک آپ هم کد ریستورش خراب بود
داداش اگه میشه کد بده من نمیدونم باید چکار کنم

vapa_71
پنج شنبه 05 بهمن 1391, 10:28 صبح
خدا وکیلی یعنی کسی نمیتونه یک کد درست و حسابی واسه بکاپ بذاره من کل سایت رو گشتم هیچی پیدا نکردم

danialafshari
پنج شنبه 05 بهمن 1391, 10:35 صبح

vapa_71
پنج شنبه 05 بهمن 1391, 10:42 صبح
داداش اینو که دارم ریستور نداره

danialafshari
پنج شنبه 05 بهمن 1391, 10:43 صبح
خب خودت کد گذاشتی ! گفتی میره روی قبلی که درستش کردم ! خوب اون سالمه رو بزار !

حالا یک کد دارم که هم بکاپش جواب میده هم ریستور اما بکاپ گیریش 1 مشکل داره اونم اینه که وقتی اولین بار بکاپ میگیرید واسه بارهای بعدی اون فایل بکاپ قبلی رو پاک نمیکنه که بکاپ جدید جای اون ذخیره بشه

vapa_71
پنج شنبه 05 بهمن 1391, 10:53 صبح
خب خودت کد گذاشتی ! گفتی میره روی قبلی که درستش کردم ! خوب اون سالمه رو بزار !

خب اون کد اسم بکاپ واسش تعریف شده یعنی گفته فایل بکاپ اسمش اینه وقتی اسمش عوض بشه دیگه اون کد هم کار نمیکنه

از روش saveFileDialog نمونه برنامه نداری ؟

danialafshari
پنج شنبه 05 بهمن 1391, 11:02 صبح
خو من اون نمونه هم که بالا گزاشتم از همون کده دیگه !

اینم برا پاک کردن فایل قبلی :
if (System.IO.File.Exists(Application.StartupPath + "\\backup.bak"))
{
if (MessageBox.Show("آیا از حذف فایل مطمئن هستید؟", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
System.IO.File.Delete(Application.StartupPath + "\\backup.bak");
}
}

SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\dbafshari.mdf;Integrated Security=True;Connect Timeout=10;User Instance=True");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;//'گرفتن نام کامل دیتابیس
cmd.Connection.Close();

SqlConnection.ClearAllPools();
string query = "BACKUP DATABASE [" + dbname + "] TO DISK ='" + Application.StartupPath + "\\backup.bak'";
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();
MessageBox.Show("database backup: ok");

اینم با Save Dialog :
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "Backup Files (*.bak)|*.bak";
sfd.ShowDialog();

if (sfd.FileName != "")
{

SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\dbafshari.mdf;Integrated Security=True;Connect Timeout=10;User Instance=True");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;//'گرفتن نام کامل دیتابیس
cmd.Connection.Close();

SqlConnection.ClearAllPools();
string query = "BACKUP DATABASE [" + dbname + "] TO DISK ='" + Application.StartupPath + "\\" + sfd.FileName + ".bak'";
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();
MessageBox.Show("database backup: ok");
}

دیگه چی؟

vapa_71
پنج شنبه 05 بهمن 1391, 11:33 صبح
الان شد دمت گرم

فقط واسه این savefiledialog ریستورش هم داری یا فقط بکاپش رو داری

danialafshari
پنج شنبه 05 بهمن 1391, 12:04 عصر
برای Restore از OpenFileDialog به جای SaveFileDialog استفاده می کنی

OpenFileDialog ofd = new OpenFileDialog();

vapa_71
پنج شنبه 05 بهمن 1391, 12:07 عصر
اینم پروژه کامل شده امیدوارم به درد دوستان بخوره با تشکر از دانیال عزیز

vapa_71
پنج شنبه 05 بهمن 1391, 12:08 عصر
برای Restore از OpenFileDialog به جای SaveFileDialog استفاده می کنی

OpenFileDialog ofd = new OpenFileDialog();

یعنی دقیقا همون کد؟

danialafshari
پنج شنبه 05 بهمن 1391, 12:15 عصر
جای SaveFileDialog sfd = new SaveFileDialog();
و متغیر ofd رو به sfd تغییر بده و پایئنشم کد Restor ی که داری رو بزار

ehemitsme
سه شنبه 19 خرداد 1394, 11:17 صبح
بسسسسسسسسسسسسسسسسسسسسسسیا ر ممنون

خیلییی گشتم دنبال این کد

دست گلتون درد نکنه