امکان داره یک نمونه اجرای قرار بدید
امکان داره یک نمونه اجرای قرار بدید
با سلام خدمت شما تمامی دوستان
در ابتدا بخاطر فیلم آموزشی که گذاشتید و دستور قطع ارتباطی که بیان کردید تشکر میکنم من با استفاده از فیلم و با به کار بردن این دستور برنامه جداگانه ای نوشتم ولی بازهم بعد از یک بار اجرا دوباره همان دو خطا را میدهد و یک باری که برنامه اجرا میشود پیغام بازگردانی با موفقیت انجام شد را نشان میدهد ولی زمانی که سراغ جدولها میروم میبینم هیچ عمل بازگردانی انجام نداده است اگه میشه و کسی میدونه چرا اینطور میشه به من بگه بازهم از جوابهایی که به تایپیکهای من دادید خیلی خیلی تشکر میکنم منتظر راهنماییتون هستم با تشکر
کد پشتیبان گیری که با پروژه جدیدی که نوشتم
public string Backup(string str)
{
try
{
this.Refresh();
this.Cursor = Cursors.WaitCursor;
SqlCommand cmd = new SqlCommand();
string scnn = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Documents and Settings\esmaeel\Desktop\back jadid\2\2\Database1.mdf;Integrated Security=True;User Instance=True";
SqlConnection oConnection = new SqlConnection(scnn);
cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\backdb.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 [" + Application.StartupPath + @"\backdb.mdf] TO DISK ='" + str.ToString().Trim() + "' ";
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();
this.Cursor = Cursors.Default;
MessageBox.Show("تهیهنسخهپشتیبانا اطلاعاتباموفقیتانجامشد", "پشتیبانگیری", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show("Error Occurd : " + ex.Message);
//textBox1.Text = ex.Message;
return ex.Message;
}
return "";
}
کد بازگردانی که با پروژه جدیدی که نوشتم
private void Restore1(string strFileName)
{
#region Restore File Bak
SqlConnection.ClearAllPools();
try
{
SqlConnection.ClearAllPools();
this.Refresh();
string Command = "ALTER DATABASE [" + Application.StartupPath + @"\backdb.mdf] SET SINGLE_USER with ROLLBACK IMMEDIATE; RESTORE DATABASE [" + Application.StartupPath + @"\backdb.mdf] FROM DISK='" + strFileName + "';ALTER DATABASE[" + Application.StartupPath + @"\backdb.mdf] SET MULTI_USER;";
this.Cursor = Cursors.WaitCursor;
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\backdb.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;
cmd.Connection.Close();
cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;Integrated Security=True;Connect Timeout=30;User Instance=True");
cmd.Connection.Open();
cmd.CommandText = Command;
cmd.ExecuteNonQuery();
cmd.Connection.Close();
SqlConnection.ClearAllPools();
MessageBox.Show("بازیابی انجام شد .");
}
catch (Exception ex)
{
MessageBox.Show("Error :" + ex.Message);
}
#endregion
}
پیغام خطا 1
Unable to delete file "C:\Documents and Settings\esmaeel\My Documents\Visual Studio 2008\Projects\back\back\bin\Debug\backdb.mdf". The process cannot access the file 'C:\Documents and Settings\esmaeel\My Documents\Visual Studio 2008\Projects\back\back\bin\Debug\backdb.mdf' because it is being used by another process.
.
پیغام خطای2
Unable to delete file "C:\Documents and Settings\esmaeel\My Documents\Visual Studio 2008\Projects\back\back\bin\Debug\backdb_log.ldf". The process cannot access the file 'C:\Documents and Settings\esmaeel\My Documents\Visual Studio 2008\Projects\back\back\bin\Debug\backdb_log.ldf' because it is being used by another process.
آخرین ویرایش به وسیله ragbar1 : دوشنبه 20 خرداد 1392 در 03:00 صبح
من تو پروژه از چنین دستوراتی استفاده نکردم
از linq وDataSet استفاده کردم
با این دستورات هرکار میکنم خطا میده...
راهنمائی کنید
تشکر
ضمیمه 109787
اینم کد خطا:
Incorrect syntax near '.'.
Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.و اینم کدهای بک آپ:
private void button2_Click(object sender, EventArgs e)
{
bool bBackUpStatus = true;
Cursor.Current = Cursors.WaitCursor;
if (Directory.Exists(@"d:\SQLBackup"))
{
if (File.Exists(@"d:\SQLBackup\Test1.bak"))
{
if (MessageBox.Show(@"آیا میخواهید پشتیبان چدیدتر بگیرید؟", "پشتیبان گرفته شده است", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
File.Delete(@"d:\SQLBackup\Test1.bak");
}
else
bBackUpStatus = false;
}
}
else
Directory.CreateDirectory(@"d:\SQLBackup");
if (bBackUpStatus)
{
//Connect to DB
SqlConnection connect;
string con = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Test.mdf;Integrated Security=True;User Instance=True";
//string con = @"Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\Test.mdf;Integrated Security=True;User Instance=True";
connect = new SqlConnection(con);
connect.Open();
//----------------------------------------------------------------------------------------------------
//Execute SQL---------------
SqlCommand command;
command = new SqlCommand(@"backup database Test.mdf to disk ='d:\SQLBackup\Test1.bak' with init,stats=10", connect);
command.ExecuteNonQuery();
//-------------------------------------------------------------------------------------------------------------------------------
connect.Close();
MessageBox.Show("پشتیبان گیری با موفقیت انجام شد", "پشتیبان گیر", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
بچه ها این خطا معنیش چیه؟
سلام
من کدهای پشتیبان گیری و بازیابی پایگاه داده را با اصلاحات لازم نوشتم.
دو متد بسیار سادست که هر کدام دو مقدار ورودی میگیره، یکی نام پایگاه داده و دیگری نام و مسیر فایل مورد نظره.
اگر مشکلی بود بفرمایید تا توضیخ بدم
کد Backup گیری:
public void BackUp(string DatabaseName,string FileName)
{
string strSQL = @"BACKUP DATABASE "+ DatabaseName +" TO DISK='"+ FileName +"'";
SqlConnection con = new SqlConnection();
SqlCommand com = new SqlCommand();
con.ConnectionString = strCon;
com.CommandText = strSQL;
com.Connection = con;
con.Open();
com.ExecuteNonQuery();
con.Close();
}
کد Restore کردن:
public void Restore(string DatabaseName, string FileName)
{
string strSQL = "USE MASTER RESTORE DATABASE " + DatabaseName + " FROM DISK = '" + FileName + "' WITH REPLACE";
SqlConnection con = new SqlConnection();
SqlCommand com = new SqlCommand();
con.ConnectionString = strCon;
com.CommandText = strSQL;
com.Connection = con;
con.Open();
com.ExecuteNonQuery();
con.Close();
}
سلام دوستان.
من همه چیز رو درست انجام دادم اما وقتی می خواد بکاپ بگیره این اررور رو میده
لطفا راهنمایی کنید.کد HTML:An error has occured while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error 26 - Error Locating Server/Instance Specified)
در ضمن دیتا بیس من database file هست
کسی میدونه خطای این دستور چیه؟
BACKUP DATABASE ACC TO DISK 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\ACC.BAK'
این خطا رو میده:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\ACC.BAK'.
سلام
آیا میشه دستور بکاپ رو توی یک تایمر گذاشت تا بصورت اتوماتیک مثلا در 12 شب بکاپ گرفته بشه...؟؟
یا کار بهتری هم میشه انجام داد
ممنون میشم راهنمایی کنید...
با سلام.
با استفاده از تایمر شما دائما cpu را درگیر خواهید کرد و این در حالیست که سرویس SQL Server Agent برای انجام چنین کار هایی همیشه فعال می باشد و بهتر و منطقی تر است که از خود SQL Server برای اینکار استفاده کنید.
شما با استفاده از یک Job در SQL Server براحتی می توانید چنین کاری را انجام دهید.
موفق باشید.
با سلام
دوستان منم مشکل عدم شناسایی دیتابیس رو در زمان پشتیبان گیری دارم. متن ارور هم اینه:
database EngAsgharzadeOfficeDatabase does not exist. make sure that the name entered correctly
command هم به این صورته:
backup database EngAsgharzadeOfficeDatabase to disk ='C:\1\1.bak'
به هیچ وجه هم امکان نداره اسم دیتابیس اشتباه باشه چون خیلی امتحان کردم و حتی از connection string که درست هم کار میکنه و ارتباط رو باز و بسته میکنه اسم دیتابیس رو کپی کردم. حتی اسم فایل mdf رو که تو پوشه برنامم هستش هم کپی گرفتم اما بازم همون ارور رو میده. کسی میتونه راهنمائیم کنه؟
سلام
بکاپ اتوماتیک تو این تاپیک انگار به جایی نرسیده ...
این آدرس یکی از دوستان تو یه تاپیکه دیگه گذاشتن واسه بکاپگیری اتوماتیک ولی من چیزی سر در نیوردم (چون زبانم ضعیفه)
http://weblogs.asp.net/sreejukg/sche...ql-server-2008
اما مسئله اصلی اینه که من میخوام هر دو صورت (بکاپ گیری معمولی و اتوماتیک) رو تو پروژه داشته باشه ... و اگه کابر تیک چک باکس (تو فرم بکاپ گیری) رو زد بعد از خروج از برنامه بکاپ گیری اتومات انجام شه و اگه تیک نزد که هیچی !
اینم هست (واسه ری استور خودکار)
http://blogs.lessthandot.com/index.p...ore-to-remote/
اقا من اینجا eror mide
کلمه file را مشگل میبینه زیرش خط قرمز میزنه
if (File.Exists(@"d:\SQLBackup\svBackUp1.bak"))
میرم و فایل ای eror میاد
the name 'file'does not exist in the current context
آخرین ویرایش به وسیله pooriajojo : پنج شنبه 14 اسفند 1393 در 15:00 عصر
سلام خدمت اساتید گرامی
نمیخواستم تایپک جدید درست کنم برای همین همینجا میپرسم سوالمو
--------------
با کد زیر من بکآپ گرفتن اتوماتیک درست کردم از برنامه که هرگاه از برنامه خارج شد کاربر خودکار بکآپ گیری انجام بشه
SqlCommand sqlcom = new SqlCommand();
sqlcom.Connection = new SqlConnection("Data Source=KARIMI_PC;Initial Catalog=New_work;Integrated Security=True");
sqlcom.Connection.Open();
string dbname = sqlcom.Connection.Database;
sqlcom.Connection.Close();
SqlConnection.ClearAllPools();
string query = "BACKUP DATABASE New_work TO DISK='C:\\Users\\Karimi\\Documents\\Montada\\auto back up.bak'";
sqlcom.Connection = new SqlConnection(@"Data Source=KARIMI_PC;Integrated Security=True");
sqlcom.Connection.Open();
sqlcom.CommandText = query;
sqlcom.ExecuteNonQuery();
sqlcom.Connection.Close();
Application.Exit();
درست بکآپ گرفته میشه و مشکلی هم نداره اما فقط دفعه اول انجام میشه و به طور خلاصه اینکه
میخوام کمکم کنید که بتونم overwrite بکنم فایل بکآپ جدید رو
امیدوارم تونسته باشم منظورمو برسونم
باتشکر از پاسخ گوییتون
سلام منم مثل خودتم ولی بک آپ رو حل کردم ولی ریستور رو نه اگه کدی واسه ریستور پیدا کردی بفرست.
کد بک آپ از اس کیو ال اکسپرس:
private void button1_Click(object sender, EventArgs e)
{
string strFileName = "BackupFile.bak";
try
{
this.Cursor = Cursors.WaitCursor;
SqlCommand cmd = new SqlCommand();
SqlConnection.ClearAllPools();
cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=G:\Users\Moha mmad\Documents\Sandwech.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;
cmd.Connection.Close();
string query = "BACKUP DATABASE [" + dbname + "] TO DISK ='D:\\" + strFileName + "' WITH NO_COMPRESSION ,CONTINUE_AFTER_ERROR ,FORMAT, INIT, NAME = N'accounting-Full Database Backup', SKIP,NOREWIND, NOUNLOAD, STATS = 10";
cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=G:\Users\Moha mmad\Documents\Sandwech.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;");
cmd.Connection.Open();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
cmd.Connection.Close();
this.Cursor = Cursors.Default;
MessageBox.Show("تهیه نسخه پشتیبان از اطلاعات با موفقیت انجام شد", "پشتیبان گیری", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show("Error Occurd : " + ex.Message);
}
}
یه دنیا ازتون ممنونم
اقا یه سوال شاید مسخره ولی خب سواله دیگه
برای ریستور کردن یه دیتابیس حتما باید اون دیتابیس روی اسکیوال اتچ باشه؟؟
ینی میخوام ببینم میتونم برای ساخت ستاپ برنامه ام بجای اینکه فایل دیتابیس را بدم بکاپشا بدم و توی مقصد توی اولین اجرا بجای اتچ کردن دیتابیس بکاپشا ریستور کنه؟
و اگه امکانش هست بازم اون قضیه ریدانلی شدن توی درایو ویندوز اینجا هم ممکنه پیش بیاد؟
با سلام.
من میخوام وقتی سیستم درحال پشتیبان گیری از اطلاعات همزمان نوار progress barهم داشته باشم که میزان پیشرفت عملیات پشتیبان گیری رو بهم نشون بده
دوستان هنگام بک آپ گیری دچار این مشکل میشم
An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll
Additional information: Database 'MDT' does not exist. Make sure that the name is entered correctly.
روشهای دیگه رو هم رفتم ، نتیجه نگرفتم ف لطفا راهنماییم کنید ، نمیدونم چطور برطرفش کنم
دوستان من از کدهای زیر برای ریستور کردن استفاده میکنم اما مشکل این هست که فایل log بانک رو میخواد،،، اما بخش کدهای بک آپ کارش رو انجام میده و بک آپ رو درست میگیره ، لطفا من رو راهنمایی کنید
OpenFileDialog openfiledialog = new OpenFileDialog();
openfiledialog.Filter = "BackupFile(*.BAK)|*.BAK";
if (openfiledialog.ShowDialog() == DialogResult.OK)
{
//try
//{
this.Refresh();
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirec tory|\MDT.mdf;Integrated Security=True;Connect Timeout=60");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;
cmd.Connection.Close();
string query = "ALTER DATABASE [" + Application.StartupPath + @"\MDT.mdf] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ; USE MASTER
RESTORE DATABASE [" + Application.StartupPath + @"\MDT.mdf] FROM DISK= '" + openfiledialog.FileName + "' ;ALTER DATABASE [" + Application.StartupPath + @"\MDT.mdf ] SET MULTI_USER ;";
//string query = "use master " + " RESTORE DATABASE [" + Application.StartupPath + @"\MDT.mdf ] FROM DISK= '" + openfiledialog.FileName + "' ; ";
cmd.Connection = new SqlConnection(@"Data Source=(LocalDB)\v11.0;Integrated Security=True;Connect Timeout=60");
cmd.Connection.Open();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
cmd.Connection.Close();
MessageBox.Show("بازیابی داده های شما با موفقیت انجام شد");
آخرین ویرایش به وسیله kaamel : سه شنبه 13 مهر 1395 در 02:42 صبح
عزیران ، کسی نیست به من پاسخ بده
دوستان ، کسی نیست جواب بده
با تشکر از مطالب مفیدتون
کد بکاپ گیری رو اجرا کردم به خوبی کار کرد
اما کد ری استور با خطا مواجه شد
ممنون میشم راهنمایی کنید
این میتونه کمکتون کنه
http://uplod.ir/2lpo4pdzbvdn/BackRestore.rar.htm
من خودم خیلی دنبالش گشتم تا پیداش کردم
با عرض سلام و احترام
پس از جستجوهای فراوان، شیوه ی بکاپ گیری از دیتابیس SQL Server 2012 Express LocalDB از طریق #C را در این لینک می توانید بیابید.
لطفاً جهت حل این مسئله ی فراگیر برای دیگران، به دیگر افراد نیز اطلاع دهید.