con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename="+Application .StartupPath+"\ensani.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")
Printable View
con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename="+Application .StartupPath+"\ensani.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")
دوستان تو را به خد ا بررسي كنيد
backup:
#region CreateBackup
public static bool CreateBackup(string filename)
{
bool sign = false;
string file = Path.GetFileName(filename);
string backupDir = "";
RegistryKey registry;
try
{
registry = Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenS ubKey("Microsoft").OpenSubKey("Microsoft SQL Server").OpenSubKey("MSSQL.1").OpenSubKey("MSSQLSe rver");
backupDir = registry.GetValue("BackupDirectory").ToString();
}
catch (Exception ex)
{
Error = ex.Message;
//throw new Exception(" .\n .", ex);
}
string dbName = GetDatabaseName();
//server = GetDatabaseServer();
try
{
IDbConnection connection = newSqlConnection(string.Format("Server={1};initial catalog={0};Integrated Security=SSPI", dbName, server));
connection.Open();
IDbCommand command = connection.CreateCommand();
command.CommandText = "BACKUP DATABASE " + dbName + " TO DISK=N'" + file + "' WITH FORMAT";
command.ExecuteNonQuery();
File.Copy(backupDir + "\\" + file, filename, true);
File.Delete(backupDir + "\\" + file);
connection.Close();
sign = true;
}
catch (Exception ex)
{
Error += ex.Message;
sign = false;
}
//finally
//{
// try
// { connection.Close(); }
// catch (Exception ex) { }
//}
return sign;
}
#endregion
restore
#region RestoreBackup
public static bool RestoreBackup(string filename, string Database_Name)
{
bool sign = false;
// server = ".\\SQLEXPRESS";
string file = Path.GetFileName(filename);
string backupDir = "";
RegistryKey registry;
try
{
registry = Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenS ubKey("Microsoft").OpenSubKey("Microsoft SQL Server").OpenSubKey("MSSQL.1").OpenSubKey("MSSQLSe rver");
backupDir = registry.GetValue("BackupDirectory").ToString();
}
catch (Exception ex)
{
Error = ex.Message;
//throw new Exception(" .\n .", ex);
}
string dbName = GetDatabaseName();
IDbConnection connection = newSqlConnection(string.Format("Server={1};initial catalog={0};Integrated Security=SSPI", dbName, server));
connection.Open();
IDbCommand command = connection.CreateCommand();
string defaultDB = connection.Database;
string tmpBackupFile = backupDir + "\\" + file;
System.Data.IDbTransaction tran;
try
{
//System.Data.SqlClient.SqlTransaction transaction;
//tran = connection.BeginTransaction(IsolationLevel.ReadCom mitted);
//command.Transaction = tran;
SqlCommand Cmd_Single = newSqlCommand();
//Cmd_Single.Connection = con;
string Cmd_Singletext = "ALTER DATABASE " + dbName + " SET SINGLE_USER with ROLLBACK IMMEDIATE";
command.CommandText = Cmd_Singletext;
command.ExecuteNonQuery();
File.Copy(filename, tmpBackupFile, true);
connection.ChangeDatabase("master");
command.CommandText = "RESTORE DATABASE " + defaultDB + " FROM DISK=N'" + tmpBackupFile + "' WITH REPLACE";
command.ExecuteNonQuery();
connection.ChangeDatabase(defaultDB);
File.Delete(tmpBackupFile);
Cmd_Singletext = "ALTER DATABASE " + dbName + " SET MULTI_USER";
command.CommandText = Cmd_Singletext;
command.ExecuteNonQuery();
sign = true;
// tran.Commit();
}
catch (Exception ex)
{
Error = ex.Message;
sign = false;
// Attempt to roll back the transaction.
try
{
// tran.Rollback();
}
catch (Exception ex2)
{
Error += ex2.Message;
// This catch block will handle any errors that may have occurred
// on the server that would cause the rollback to fail, such as
// a closed connection.
Console.WriteLine("Rollback Exception Type: {0}", ex2.GetType());
Console.WriteLine(" Message: {0}", ex2.Message);
}
}
connection.Close();
return sign;
}
#endregion
برادر از كد شما هيچي نفهميدم لطفا اگر امكان داره مثل كد من تغييرش بديد با تشكر
مثل کد شما تغییرش بدم؟؟؟؟؟؟
چطور؟؟
بک آپ گیری ایشون که همون کد شماست ، فرقی نمی کنه ، فقط با در نظر گرفتن این که به تعداد افراد برنامه نویس روش کد نویسی وجود داره
این دوستمون اول از رجیستری آدرس محل دایکتوری بک آپ اس کیو سرور رو گیر آورده ، اونجا بک آپ گرفته و بعد کپی کرده به جایی که می خواد
رستورشو هنوز بررسی نکردم ، فردا یه نگا میندازم ، الان کار دارم
موفق باشی
سلام به همه دوستان و اساتید محترم.
این کمپوننتی که من قرار داده ام حاصل تغییراتی است که در ماژول اصلی که از همین سایت گرفتم ، می باشد. برای بکاپ گرفتن و ریستور کردن دیتابیس ها بصورت Online و تحت شبکه با Sql Server 2008 جواب گرفتم .
تغییراتی که من به ماژول اولیه دادم این بودش که یه event بهش اضافه کردم که لحظه پایان فعالیت فایر می شود . همچنین با استفاده از ایجاد deletege ، روند پیش رفت کار را در یک فرم بصورت فراخوانی فرم با روال ShowDialog نمایش دادم که برای برنامه نویسهای حرفه ای قابل توجه می باشد . چون که نمی خواند در هنگام گرفتن بک آپ و یا ریستور کردن دیتابیس ، کاربر فعالیت دیگری انجام دهد.
یاد آور می شوم که تکنیک بکار رفته در این کمپوننت برای بکاپ گیری و .. استفاده از smo می باشد .
امیدوارم که به درد بخور باشه.
با تشکر
دوستان اگه دیتابیس بسته نشده باشه ریستور نمیکنه
با سلام به شما دوست عزیز.
دوست من شما یه نگاهی به کامپوننت من بکنید. متوجه می شوید که حتی در حالت Online نیز Restore انجام می شه!
همچنین تحت شبکه هم جواب می ده . به نقل قول از نویسنده اصلی این کامپوننت که گفتند " بیاد داشته باشید که مسیر Backup و یا فایل Restore درون کامپیوتری هستش که Sql Server و دیتابیس روی اون نصبه"
دوست من كامپوننت شما را دانلود كردم ولي متاسفانه اجرا نمي شه و خطا مي گيره دوست عزيز من زياد وقت ندارم خواهشا به كد من در صفحه قبل نگاهي بياندازيد به اين نكته مهم هم توجه كنيد كه من در حالتي كه ديتابيس را كنار فايل exe قرار نداده بودم و كانكشن استرينگ آن را نيز تغيير نداده بودم درست اجرا مي شد
شما باید توی بازیابی به یک نکته اساسی توجه کنی اونم اینه که نباید به همون دیتابیسی وصل بشی که میخوای بازیابیش کنی
من یک کد برات میذارم اگه کارایی که میگمو درست انجام بدی مطمنم درست کار می کنه :
con = newSqlConnection("Data Source=اسم سرور;Initial Catalog=Security;Integrated Security=True");
try
{
con.Open();
string s1 = "ALTER DATABASE اسم دیتابیست SET OFFLINE WITH ROLLBACK IMMEDIATE";
string s2 = "ALTER DATABASE اسم دیتابیستSET MULTI_USER";
string query = "RESTORE DATABASE اسم دیتابیست FROM DISK ='" + Masir + "' WITH RECOVERY,REPLACE";
SqlCommand cmd = newSqlCommand();
cmd.CommandText = s1;
cmd.Connection = con;
cmd.ExecuteNonQuery();
cmd.CommandText = s2;
cmd.Connection = con;
cmd.ExecuteNonQuery();
cmd.CommandText = query;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("بازیابی با موفقیت انجام شد ");
}
catch
{
MessageBox.Show("اشکال در ارتباط با دیتابیس ");
}
Masir : مسیر فایل پشتیبانت هست که می تونی از یک opendialogbox بگیریش
حله؟
برادر من شما پست اول و بقيه پست هاي منو خونديد يا نه . ايني كه برام فرستاديد زماني كه من ديتابيس را در مسير فايل exe قرار ندادم و طبيعي است كه قبل از اينكه كانكشن استرينگ را تغيير بدم درست كار مي كنه ولي من در پست هاي قبل هم گفتم كه ديتابيس را در مسير فايل exe قرار دادم و كد اروري كه در پست يك فرستادم را مي ده
دوست عزيز در مورد اي بيشتر توضيح بده :
شما باید توی بازیابی به یک نکته اساسی توجه کنی اونم اینه که نباید به همون دیتابیسی وصل بشی که میخوای بازیابیش کنی
با یه مثال مشخصش می کنیم .
ببین این کانکشن استرینگ من برای کارهای معمولیه مثل درج در دیتابیس یا حذف :
"Data Source=NIK-23B9FE4055B\\NIK;Initial Catalog=VamDB;Integrated Security=True"
یعنی دیتابیسی که من باهاش کار می کنم VamDB
ولی وقتی میخوام این دیتابیسمو بازیابی کنم (restor) نباید از طریق همین کانکشن استرینگ وصل بشم بلکه :
"Data Source=NIK-23B9FE4055B\\NIK;Initial Catalog=Security;Integrated Security=True"
دیدی؟چون نمیشه وصل بشی به یک دیتابیس و بخوای همونم رستور کنی
حلهههههههههه؟
چه اروری؟؟؟؟؟؟؟؟؟/
شاید توی sql server تو دیتابیس Security وجود نداشته باشه
عوضش کن
ارور رو بگو که چیه
با سلام. از تاخیری که داشتم شرمنده .
کد من را بصورت زیر استفاده کنید .(برای Restore کردن و backup مثل هم هستش)
database = "نام دیتابیس خود";
file_name = "مسیر فایل بک آپ گرفته شده";
if (Sql_Management.ConnectToServer("اینجا باید کانکشن استرینگ را برگردونید"))
{
Sql_Management.RestoreDataBase(database, file_name);
Sql_Management.Dicconnect();
}
با سلام مجدد .
این SQL_Management نام شی ساخته شده هستش که باید از قسمت Toolbox اون را به فرم اضافه کنید .:اشتباه:
سلام . شرمنده . یک چیز دیگه یادم اومد .
اگه کد خطای زمان کمپایل میده ، توی لیست رفرنس ها ، فایلهای dll مربوط به SqlServr را از نو load کنید .
با سلام
من تا حالا برای بک آپ گرفتن از اطلاعاتم می رفتم به مسیر sql و دو تا فایل mdf و ldf رو کپی می کردم تو یه درایو دیگه
حالا برای اینکه کاربر مجبور نباشه این مسیر رو طی کنه و بتونه از طریق همین برنامه به بک آپ گیری از اطلاعات دسترسی داشته باشه باید چکار کنم ؟ چه دستوری می تونه منو کمک کنه؟
ممنون:لبخندساده:
وقتی فایل ها رو کپی میکردی سرویس SQL Service در حال اجرا بود ؟
و دیتابیس Attach شده بود ؟
در این صورت باید بگویم کپی و پیست گرفتن در اغلب موارد غیر ممکنه و خطالی File in Use میده.
و در مواردی هم که کپی میشه؛ فایل کپی شده کار نمیکنه.
اگه این طوری بود که شما میگفتی ؛ هر کسی میومد پشت سرور و بدون این که نیاز به Login خاصی داشته باشه ؛ کل دیتابیس ها رو میبرد.
البته من این رو تست نکردم؛ و شکر خدا دیتابیس رو با TDE رمزنگاری میکنم.
شما یه تست کن ببین این به اصطلاح بک آپ ها کار هم میکنند.
ممنون میشم.
سلام دوست من
نمونه کدتون رو دیدم خیلی به دردم خورد ممنون
بک آپش کار می کنه و درسته. من برای مسیری که باید مشخص کنم درایو g و توی یه پوشه از قبل ساخته شده ، تعیین کردم
ولی ری استور درست کار نمی کنه خطای اشکال در ارتباط رو میده
البته مسیر ری استور رو هم همون درایو g و همون پوشه تعیین کردم
این کارم درسته ؟
اصلا این بازیابی کی به درد می خوره؟
من اومدم برای امتحان بانک اصلی که توی مسیر sql هست رو پاک کردم تا بیام و با استفاده از دکمه بازیابی که توی برنامه گذاشتم بانکم رو از درایو g بازیابی کنم اما اصلا برنامه اجرا نمیشه که طبیعی هم هست
حالا میخام بدونم اگه یه زمونی به هر دلیلی بانک اصلی پرید و برنامه اجرا نشد این گزینه بازیابی که اصلا به در نمی خوره
سلام
بک اپش هم کار می کنه مشکلی نداره .
بازیابی صرفا برای بازگشت دیتابیس حذف شده به درد نمی خوره . برای بازیافت بخشی از اطلاعات خیلی به درد میخوره (زمانی که کاربر به اشتباه مثلا یه مشتری رو از یه سیستم فروش حذف می کنه و شاید برنامه شما هم ازش بپرسه که آیا میخواهید تمام خرید های این مشتری رو هم پاک کنید و اون هم بله رو انتخاب می کنه . پس بک اپ به درد می خوره )
برای بازیابی کل دیتابیس هم شما میتونید یه برنامه کوچیک ، جدا از برنامه اصلی داشته باشید که دیتابیس بسازه یا ریستور کنه . که در زمان نبودن دیتابیس هم بالا بیاد .
من توی برنامه هام مسیر بک اپ رو در اختیار کاربر میزارم تا هر جا خواست ذخیره کنه .
موفق باشید .
من منظورم ری استور بود معذرت می خوام.
این کد رو نگاه کن . مسیر رو از کاربر می گیرهنقل قول:
آره خیلی خوبه که کاربر خودش مسیر رو انتخاب کنه . می تونی بیشتر کمک کنی
string strFileName = string.Empty;
openFileDialog1.Filter = @"sql backup file (*.bak) | *.bak|all files (*.*) |*.*";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Title = "استفاده از فایل پشتیبان";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
if (MessageBox.Show("آیا میخواهید سیستم را بازیابی کنید؟", "حراست همگام", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
Application.DoEvents();
strFileName = openFileDialog1.FileName;
restore(strFileName);
}
}
متن ارور رو هم بزارید بهتر میشه اظهار نظر کرد .
try catch رو بردارید و متن ارور رو بزارید .
سلام دوست عزیز.منم مشکل شما رو داشتم با استفاده از کد خودت ایرادهایی رو که داشت گرفتم و در اخر هم برام جواب داد.اینم کدش. موفق باشی
backup
string command = @"BACKUP DATABASE [" + Application.StartupPath + "\\ensani.mdf] TO DISK = N'" + strFileName + "' WITH NOFORMAT, NOINIT, NAME = N'accounting-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10";
this.Cursor = Cursors.WaitCursor;
SqlCommand oCommand = null;
SqlConnection oConnection = null;
string scnn = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\ensani.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
oConnection = new SqlConnection(scnn);
if (oConnection.State != ConnectionState.Open)
oConnection.Open();
oCommand = new SqlCommand(command, oConnection);
oCommand.ExecuteNonQuery();
this.Cursor = Cursors.Default;
oConnection.Close();
Restore
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\ensani.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
con.Open();
string s1 = "ALTER DATABASE [" + Application.StartupPath + "\\ensani.mdf] SET OFFLINE WITH ROLLBACK IMMEDIATE";
string s2 = "ALTER DATABASE [" + Application.StartupPath + "\\ensani.mdf] SET MULTI_USER";
string query = "RESTORE DATABASE [" + Application.StartupPath + "\\ensani.mdf] FROM DISK ='" + strFileName + "' WITH RECOVERY,REPLACE";
SqlCommand cmd = new SqlCommand();
cmd.CommandText = s1;
cmd.Connection = con;
cmd.ExecuteNonQuery();
cmd.CommandText = s2;
cmd.Connection = con;
cmd.ExecuteNonQuery();
cmd.CommandText = query;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
اینم متن ارور:
Exclusive access could not be obtained because the database is in use.
RESTORE DATABASE is terminating abnormally.
Changed database context to 'master'.
کد دکمه پشتیبانی:
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=.;Initial Catalog=quran;Integrated Security=True";
SqlCommand com = new SqlCommand();
try
{
con.Open();
string query = "BACKUP DATABASE quran TO DISK = 'g:\\bk\\Backup.MDF'";
com.CommandText = query;
com.Connection = con;
com.ExecuteNonQuery();
con.Close();
MessageBox.Show("پ¬¢ی ںë گی©ی ى §©«¢ی ںë¤ںê ¬§");
}
catch
{
MessageBox.Show("ں¬کںé §© ں©¢ ںل ں ںëک ںلéںمں¢ی");
}
کد دکمه بازیابی:
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=.;Initial Catalog=quran;Integrated Security=True";
SqlCommand com = new SqlCommand();
con.Open();
string query = "USE master RESTORE DATABASE [quran] FROM DISK = 'g:\\bk\\Backup.MDF'";
com.CommandText = query;
com.Connection = con;
com.ExecuteNonQuery();
con.Close();
البته هنوز وقت نکردم اون مطلب مربوط به تعیین مسیر توسط کاربر رو بخونم حتما درستش می کنم
این رو امتحان کنید :
Alter Database YOURDB
SET SINGLE_USER With ROLLBACK IMMEDIATE
RESTORE DATABASE YOURDB
FROM DISK = 'address'
متشکرم دوست خوبم
راستی اشکالش رو فهمیدم
پشتیبان گیری که مشکلی نداره اما برای بازیابی من دکممه بازیابی رو توی فرمی گذاشتم که تعدادی از کنترل هاش با بانک در ارتباطه . به این نتیجه رسیدم که باید دکمه های پشتیبان گیری و بازیابی بانک در فرمی باشه که با بانکم ارتباط نداشته باشه چون این کار رو که کردم جواب داد:قلب::لبخندساده:
سلام به همه دوستان
باور کنید کلی سرچ کردم کلی مطلبم پیدا کردم ولی هیچکدومشون مشکلم حل نکردن با این کد میخام بکاپ بگیرم ولی...
con = new SqlConnection();
con.ConnectionString = "Data Source=.\\SqlExpress; AttachDbFileName=" +
Application.StartupPath + \\otagdb.mdf;Integrated Security=True;
con.Open();
string query = "BACKUP DATABASE[ " + Application.StartupPath + "\\otagdb.mdf] TO DISK = 'D:\\aaa\\ot.MDF'";
SqlCommand cmd = new SqlCommand();
cmd.CommandText = query;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
این خطا رو میده یا میگه خطا نزذیک 'D' یا اینجور چیزی ممنون میشم کمک کنید البته بیشتر با سورسی که تو برنامه دیتا بیسم باشه. بدون دیتا بیس پیدا کردم ولی مشکلم حل نشد مرسی از کمکتون:خجالت:
Could not locate entry in sysdatabases for database ' D:\myprogram\Visual Studio 2008\otagbazargani\New folder\otag\otag\bin\Debug\otagdb.mdf'. No entry found with that name. Make sure that the name is entered correctly.
BACKUP DATABASE is terminating abnormally.
سلام
توی کد زیر فقط اسم database نیاز هستش مسیر رو پاک کن یعنی Application.StartupPath
string query = "BACKUP DATABASE[ " + Application.StartupPath + "\\otagdb.mdf] TO DISK = 'D:\\aaa\\ot.MDF'";
مثال:
BACKUP DATABASE mydatabase TO DISK = 'C:\Temp\TSQLFundamentals2008_Full.BAK' WITH INIT;
سلام هرکاری میکنم نمیشه راستی من سیستم عاملم 7 هست و درایوام ntfs با اینا مشکل نداره..
string query = "BACKUP DATABASE \\otagdb.mdf TO DISK = 'D:\\aaa\\ot.MDF'";
string query = "BACKUP DATABASE otagdb.mdf TO DISK = 'D:\\aaa\\ot.MDF'";
به ترتیب این خطاها رو میده لطفا کمکم کنید:لبخندساده:
Incorrect syntax near '\'.
Incorrect syntax near '.'.
دوست عزیز این یک نمونه هست که درست هم کار میکنه.
BACKUP DATABASE [Book Lib] TO DISK = 'C:\\up.bak'
پسوند هم لازم نیست برای Book Lib نام پایگاه داده ات بزاری
واقعا مرسی ما که کارمون را افتاد اینم شاید یکی دیگه خاست
string query = "BACKUP DATABASE otagdb TO DISK = 'D:\\aaa\\ot.MDF'";
سلام
دوست عزیز چرا من نمی تونم از این متد استفاده کنم؟!
Application.startup
Application رو که از منو انتخاب می کنم ،بعد از زدن نقطه startup رو نمایش نمی ده که انتخاب کنم!!
آیا فضای نام خاصی رو باید تعریف کنم؟
لطفآ راهنماییم می کنین؟ ممنونم
کسی از دوستان می تونه جواب این سئوال رو بگه که چرا بعد از دستور Application،متد startup برای من نمایش داده نمی شه؟!
کمک بزرگی بهم می کنین اگه این مشکل رو حل کنین:لبخندساده:
سلام
از یک برنامه نویس این اشتباهات بعیده
شما با یک دیتابیس مثلا 1 وارد شدید و از همون بک آپ گرفتید
اما شما با یک دیتابیس که وجود داره و با همون وارد شده اید چطور میشه بک آپ گرفت
اول باید اون دیتابیس وجود نداشته باشه
دوم شما هنگام بک آپ گیری سعی کنید با دیتابیسی مثل master وارد شوید
جناب csharpprogramer88 :
اول باید بگم منم داره از همین کد استفاده میکنم و داره جواب میده .. بر طبق عکس که گذاشتم کدتون در ناحیه 1و2 ایراد داره :
1) از این کد بجاش استفاده کنین
[" + Application.StartupPath + "\\database-name.mdf]2) شما باید از فایل با پسوند bak. عمل رستور رو انجام بدین نه از mdf. در اینجا باید آدرس فایل بکاپ رو بهش بدین که میتونین از یه openFileDialog استفاده کنین مثه این :
FROM DISK ='" + openFileDialog_restore.FileName + "' WITH RECOVERY,REPLACE"درضمن در کد بکاپ هم مشکل وجود داره و اینه که باید فایل بکاپ با پسوند bak. بنویسین و نه mdf. مثه این :
@"BACKUP DATABASE [" + Application.StartupPath + "\\database-name.mdf] TO DISK = N'"+saveFileDialog_backup.FileName+"' WITH FORMAT, INIT, NAME = N'accounting-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10";من واسه آدرس ذخیره فایل از یه saveFileDialog استفاده کردم.
این تغییرات واسه زمانیه که فایل دیتابیس (mdf.)در پوشه برنامه bin>debug در قرار داره
آخرش یکی نشد این مشکل ما رو حل کنه
این کد واسه بک آپ گیری جواب میده :
BACKUP DATABASE [SampleDataBase]
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\BackUp\FullBackUp .bak'
WITH NOFORMAT, NOINIT, NAME = N'Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
ولی این کد ارور میده:
BACKUP DATABASE [SampleDataBase]
TO DISK = N'D:\FullBackUp.bak'
WITH NOFORMAT, NOINIT, NAME = N'Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
اینم ارورشه:
Cannot open backup device 'D:\FullBackUp.bak'.
Operating system error 5(failed to retrieve text for this error. Reason: 1815).
Msg 3013, Level 16, State 1, Line 1
BACKUP DATABASE is terminating abnormally.
واقعا دیگه کلافم کرده
در دستور بکاپ اینارو وارد(بولد شده) کنید :نقل قول:
آخرش یکی نشد این مشکل ما رو حل کنه
WITH FORMAT, INIT, NAME = N'accounting-Full Database Backup'
اشالله درست میشه..
سلام من این کد را برای backup گیری نوشتم ولی عمل نمیکنه مشکلش کجاست؟
SaveFileDialog sv = new SaveFileDialog();
if (sv.ShowDialog() == DialogResult.OK)
{
string location = string.Empty;
location = sv.FileName;
con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\mydbajance.mdf;Integrated Security=True;User Instance=True";
con.Open();
SqlCommand cmd = new SqlCommand();
string gr = "backup database database1 to disk='" + location + "'";
cmd.Connection = con;
cmd.CommandText = gr;
cmd.ExecuteNonQuery();
con.Close();}
SqlCommand cmd = new SqlCommand("backup database [" + DataBase Name + "] to disk=@path with format", con);
cmd.Parameters.AddWithValue("@path", saveFileDialog1.FileName);
اینا رو بجای string gr جایگزاری کن ببین درست میشه
Could not locate entry in sysdatabases for database 'mydbajance'. No entry found with that name. Make sure that the name is entered correctly.
BACKUP DATABASE is terminating abnormally.
اینم ارورش انگار دیتابیس رو پیدا نمیکنه