سلام
عصبانیت چی برادر! :31:نقل قول:
البته اگه دوباره عصبانی نمیشید
فقط مطلب سر این است که در این سطح، بجز چند خط کد بیان شده، چیز خاص دیگری ندارد، فقط Copy و Paste مطالب قبلی میشود.
مثلاً عرض میکنم، مطلب زیر تقریباً کپی پست 7 و 41 یکی از دو تاپیک معرفی شده است.
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
چشم...نقل قول:
میشه کد restore کردن رو هم بگید؟
کد:public void DbBackup(string file)
{
const string SQL = "BACKUP DATABASE [{0}] TO DISK='{1}' WITH FORMAT";
using (var dbcon = new System.Data.SqlClient.SqlConnection("---CONNECTIONSTRING---"))
{
System.Data.SqlClient.SqlConnection.ClearAllPools();
dbcon.Open();
using (var dbcom = new System.Data.SqlClient.SqlCommand(string.Format(SQL, dbcon.Database, file), dbcon))
{
dbcom.ExecuteNonQuery();
}
}
}
موارد قابل تعمیم و توسعه بیشتر در همین سطح:کد:public void DbRestore(string file)
{
const string SQL1 = "USE [master]; ALTER DATABASE [{0}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;";
const string SQL2 = "RESTORE DATABASE [{0}] FROM DISK = '{1}' WITH REPLACE;";
using (var dbcon = new System.Data.SqlClient.SqlConnection("---CONNECTIONSTRING---"))
{
System.Data.SqlClient.SqlConnection.ClearAllPools();
dbcon.Open();
using (var dbcom = new System.Data.SqlClient.SqlCommand(string.Empty, dbcon))
{
dbcom.CommandText = string.Format(SQL1, dbcon.Database);
dbcom.ExecuteNonQuery();
dbcom.CommandText = string.Format(SQL2, dbcon.Database, file);
dbcom.ExecuteNonQuery();
}
}
}
1) در خصوص مسیر فایل عملیاتی میتوان کد را اصلاح کرد که به روش پارامتری عملیات مورد نظر را انجام دهد که مزیت ان اطمینان از عدم مشکل در مسیر فایلهایی با کاراکترهای خاص است.
2) هر دو دستور فوق مستعد خطا در شرایط گوناگون هستند که حتماً در خود توابع ساده فوق و یا محل استفاده باید از دستورات Try و نمایش پیغام مناسب به کاربر استفاده شود.
3) احتمالاً دو SQL فوق restore را میتوان با هم ترکیب هم کرد ولی باز به نظرم ترکیب نشود و همینطوری که الآن نوشته شده، بمان بهتر است.
4) با کد restore بالا به علت اجباری بردن دستابیس در حالت تک کاربره، اگر عملیات restore باز هم به خطا بخورد احتمال دارد دیتابیس در حالت تک کاربره بماند که میتوان در زمان خطا مجدد با اجرای SQL مناسب در تابعی مجزا از تصحیح آن اطمینان حاصل کرد.
و...
شب خوش.