-
بک اپ گیری و خطای نشناختن instance
سلام دوستان عزیز این کد رو برای بکاپ استفاده میکنم ولی این خطارو میده
Instance failure
!=پایگاه داده رو داخل خود C# ساختم با sqlExpreess..
با تشگر
public static bool ExecuteQuery(string cmdText)
{
using (SqlConnection con = new SqlConnection(@"Server=.\\SQLEXPRESS;integrated security=true;"))
{
SqlCommand cmd = new SqlCommand(cmdText, con);
cmd.CommandType = CommandType.Text;
try
{
con.Open();
cmd.ExecuteNonQuery();
con.ChangeDatabase("master");
con.Close();
return true;
MessageBox.Show("ok");
}
catch (Exception exp)
{
if (con.State != ConnectionState.Closed)
{
con.ChangeDatabase("master");
con.Close();
}
MessageBox.Show(exp.Message);
return false;
}
}
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'schoolDataSet.msg' table. You can move, or remove it, as needed.
this.msgTableAdapter.Fill(this.schoolDataSet.msg);
}
private void button1_Click(object sender, EventArgs e)
{
string DataBaseName = "Database1";
string Filepath = @"C:\Users\bcmodir\Desktop\ZABAN\file.bak";
ExecuteQuery("USE master backup database " + DataBaseName + " to disk = '" + Filepath + "'");
}
}
}
-
نقل قول: بک اپ گیری و خطای نشناختن instance
با فرض اینکه نام اینستنس شما درست باشه
یا اون (آ دورت بگردم) رو از اول رشته اتصال بردارید. (رجوع شود به کاربرد آ دورت بگردم در سی شارپ)
یا بجای \\ از \ استفاده کنید.
موفق باشید.
-
نقل قول: بک اپ گیری و خطای نشناختن instance
اونو درست کردم ولی میگه که دیتابیسی که نوشتید اسمشو وجود نداره؟؟
database does not exist????
عجیبه ها
-
نقل قول: بک اپ گیری و خطای نشناختن instance
دیتابیس که اتچ نشده که شما فقط نامش رو نوشتید. باید مسیر کامل دیتابیس رو بنویسید:
string DataBaseName = "|datadirectory|\Database1.mdf";
یا
string DataBaseName = System.IO.Path.Combine(Application.StartupPath, "Database1.mdf");
دو طرف DataBaseName هم براکت بزار:
"USE master backup database [" + DataBaseName + "] to disk = '" + Filepath + "'"
-
نقل قول: بک اپ گیری و خطای نشناختن instance
ولی درست نشد دوستان ی خطای میدی خیلی گنگه میگه سینتکس نزدیکه ؟؟؟؟؟
در خط 10 بالا
Incorrect syntax near 'C:\Users\bcmodir\Documents\Visual Studio 2010\Projects\TESTPAYGAH\TESTPAYGAH\bin\Debug\Data base1.mdf'.
-
نقل قول: بک اپ گیری و خطای نشناختن instance
نشد دوست عزیز نشدمتن خطا اینه
Invalid column name 'is_compressed'.
Invalid column name 'compressed_backup_size'.
Could not insert a backup or restore history/detail record in the msdb database. This may indicate a problem with the msdb database. The backup/restore operation was still successful.
Changed database context to 'master'.
-
نقل قول: مشکل در کد بکاپ گیری
/// <summary>
/// اجرای کوئری بدون برگشت دیتا
/// </summary>
/// <param name="Query"></param>
/// <returns></returns>
public int ExecuteUpdate(string Query)
{
command.CommandText = Query;
int Code = 0;
try
{
Code = command.ExecuteNonQuery();
ExecuteMessage(Result.Success, null);
return Code;
}
catch(Exception ex)
{
ExecuteMessage(Result.Error,ex.Message);
return Code;
}
}
/// <summary>
/// پشتیبان گیری از دیتابیس با دریافت نام دیتابیس و مسیر ذخیره فایل بک آپ
/// </summary>
/// <param name="BackupDirectory"></param>
/// <param name="DataBaseName"></param>
public void BackupDatabase(string BackupDirectory,string DataBaseName)
{
ExecuteUpdate("BACKUP DATABASE " + DataBaseName + " TO DISK = '" + BackupDirectory + "' ");
}
/// <summary>
/// بازیابی فایل بک آپ با دریافت نام دیتابیس و مسیر فایل بک آپ
/// </summary>
/// <param name="BackupDirectory"></param>
/// <param name="DataBaseName"></param>
public void RestoreBackup(string BackupDirectory, string DataBaseName)
{
string Query = "ALTER DATABASE " + DataBaseName + " SET SINGLE_USER With RollBack IMMEDIATE USE MASTER " +
" RESTORE DATABASE " + DataBaseName + " FROM DISK = '" + BackupDirectory + "' With Replace";
ExecuteUpdate(Query);
}
-
قابلیت Backup/Restore در برنامه
سلام دوستان عزیز خسته نباشید من یک فرم دارم + دو تا کلید ....
من میخوام از دیتابیسم که اسمش dbtest هست بکاپ بگیرم ولی متاسفانه قابلیت SQLDMO در نسخه 2008 حذف شده یعنی تا نسخه 2000 بوده
حالا میشه یک نمونه سورس به من بدید از گرفتن Backup/Restore به صورت حرفه ای و پیشرفته و 100 درصد هم کار کنه اگر به صورت LINQ اموزش بدید که دیگه عالی میشه چون از ConnectionString خوشم نمیاد !!:لبخند:
ممنون میشم راهنمایی کنید
البته من تاپیک های زیادی در این مورد خوندم مثل زیر ولی همه ایراد داشتن !! برای همین مجبور شدم تاپیک بزنم
نمونه برنامه های کوچک و مفيد در سي شارپ
-
نقل قول: قابلیت Backup/Restore در برنامه
-
نقل قول: قابلیت Backup/Restore در برنامه
دوست عزیز SQL-Demo مربوط میشه به SQLServer2000 من از 2008 استفاده میکنم دو لینکی که دادی برای من هیچ کاربردی نداره
برای کسی خوبه که از SQL Server 2000 استفاده میکنه
درنسخه 2008 چیزی به نام SQL DMO وجود نداره
من از برنامه های زیر استفاده میکنم !!!
Microsoft Visual Studio 2010
Microsoft Visual Studio 2012
SQL Server2008
-
نقل قول: قابلیت Backup/Restore در برنامه
-
نقل قول: قابلیت Backup/Restore در برنامه
ممنون
از کد زیر که استفاده میکنم خطا میده
SqlConnection sq = new SqlConnection("Data Source=.;Integrated Security=True");
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "*.bak|*.bak";
if (sfd.ShowDialog() == DialogResult.OK)
{
SqlCommand com = new SqlCommand("backup database " + txtDBName + " to disk='"
+sfd.FileName + "'", sq);
sq.Open();
com.ExecuteNonQuery();
sq.Close();
}//if
خطا از کد زیر است ::
com.ExecuteNonQuery()
یه کد به من بدید که کار کنه و خودتون هم 100 درصد تست کرده باشد .... الان من دو روز هست که دارم روی قسمت بکاپ کار میکنم و به نتیجه هم نمیرسم !!!!
-
نقل قول: قابلیت Backup/Restore در برنامه
مشکل کاملا حل شد
من الان وقتی دیتابیس ریستور میکنم باید یک بار برنامه ببندم و دوباره باز کنم تا تغییرات ( دیدن اطلاعات ) ببینم
ایا کدی هست برای این کار ؟؟؟؟؟؟
-
2 ضمیمه
مشكل در Restore
سلام من یک کد Backup گیری و Restore دارم که کد Backup به درستی کار می کند ولی موقعی که کد Restore را اجرا می کنم با خطایی زیر رو به رو می شوم .در ضمن من از Microsoft SQL Server 2008 برای بانک اطلاعاتی خود استفاده می کنم. و در موقع اجرای برنامه آنرا چه ببندم و چه باز باشد باز هم این خطا داده می شود. باید چکار کنم. تا این خطا رفع شود؟:متفکر:
ضمیمه 100171
ضمیمه 100172
https://barnamenevis.org/images/misc/pencil.png
-
نقل قول: مشكل در Restore
سلام. پیغام خطا میگه که دیتابیس شما در حال استفاده هست و طبیعی هم هست که دیتابیس فعال رو نمیشه از درون خودش ری استور کرد. شما باید اول دیتابیس رو offline کنید و بعد اقدام به ری استور کنید. در تاپیک زیر و در پست 19 مراحل و کد ری استور رو بصورت کامل قرار دادم.
موفق باشید.
https://barnamenevis.org/showthread.p...ghlight=backup
-
نقل قول: بک اپ گیری و خطای نشناختن instance
سلام
دوستان من یک بانک با sql express خود سی شارپ طراحی کردم بدون sql server نصب باشه آیا امکان داره کد بک آپ و ری استور اون رو دوستان اینجا قرار بدن
با تشکر
-
نقل قول: مشکل در بکاپ و ریستور
میذارمش توی تگ C# که بقیه هم استفاده کنن
کد بکاپ
string bname = DateTime.Now.ToString("yyyyMMddHHmm");
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.AddExtension = true;
saveFileDialog.CheckFileExists = false;
saveFileDialog.CheckPathExists = true;
saveFileDialog.OverwritePrompt = true;
saveFileDialog.FileName = "Backup"+bname;
saveFileDialog.Filter = "Backup File (*.Bak)|*.Bak";
saveFileDialog.DefaultExt = "Bak";
saveFileDialog.RestoreDirectory = true;
saveFileDialog.InitialDirectory = System.Windows.Forms.Application.StartupPath;
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
this.Refresh();
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\LMS_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 ='" + 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();
this.Refresh();
MessageBox.Show("نسخه پشتيبان به طور كامل ايجاد شد ", "پيام", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch
{
MessageBox.Show("اشكال در اتصال به بانك اطلاعات\nلطفا مجدد تلاش كنيد", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
کد ریستور
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.AddExtension = true;
openFileDialog.CheckFileExists = false;
openFileDialog.CheckPathExists = true;
openFileDialog.Filter = "Backup File (*.Bak)|*.Bak";
openFileDialog.DefaultExt = "Bak";
openFileDialog.RestoreDirectory = true;
openFileDialog.InitialDirectory = System.Windows.Forms.Application.StartupPath;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
this.Refresh();
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\LMS_DB.mdf;Integrated Security=True;Connect Timeout=10;User Instance=True");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;
cmd.Connection.Close();
string query = "ALTER DATABASE [" + dbname + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ;RESTORE DATABASE [" + dbname + "] FROM DISK = '" + openFileDialog.FileName + "';ALTER DATABASE [" + dbname + "] SET MULTI_USER ;";
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("نسخه پشتيبان به طور كامل بازيابي شد ", "پيام", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch
{
MessageBox.Show("اشكال در اتصال به بانك اطلاعات", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
من تست کردم عالیه اگه واسه کسی مشکل داشت شک نکنه که مثل من کانکشنش مشکل داره من کانکشن رو تغییر دادم با اجازه دوستمون
-
چرا ارورو میده بانک در حال استفادست؟؟؟؟؟
من برای ری استور کردن کردن بانک کد زیر رو میزنم :اما ارورو میده بانک در حال استفادست ...چیکارش کنم؟؟؟ Cursor.Current = Cursors.WaitCursor;
try
{
if (File.Exists(@"d:\SQLBackup\svBackUp1.bak"))
{
if (MessageBox.Show("در صورت بازیابی تممی اطلاعات پایگاه داده فعلی از بین رفته و اطلاعات فایل پشتیبان جایگزین میگردد آیا مطمئن هستید؟", "بازیابی", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
//Connect SQL---------------------------------------
SqlConnection connect;
string con = @"Data Source=.;Initial Catalog=arayeshgah1;Integrated Security=True";
connect = new SqlConnection(con);
connect.Open();
//Excute SQL----------------
SqlCommand command;
command = new SqlCommand("use master", connect);
command.ExecuteNonQuery();
command = new SqlCommand(@"restore database arayeshgah1 from disk = 'd:\SQLBackup\svBackUp1.bak'", connect);
command.ExecuteNonQuery();
//----------------------------------
connect.Close();
MessageBox.Show("بازیابی با موفقیت انجام شد.", "Restore", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
else
MessageBox.Show(@"Do not make any endorsement above (or is not in the correct path)", "Restoration", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
-
Backup و Restore کردن دیتابیس
سلام به همه اساتید
قبل از پرسیدن سوال ازتون خواهش میکنم نگید جستجو کن مطلب در این مورد زیاده اگر براتون ممکنه یکبار مراحل رو به صورت کامل توضیح بدین
پیشاپیش ازتون ممنونم
و حالا سوالم
من یه برنامه طراحی کردم که دیتابیسش SQL EXPRESS 2008 هستش موقع نصب نرم افزار روی سیستم مشتری اول موتور SQL EXPRESS 2008 نصب میشه بعد نرم افزار
ConnectionString هم بصورت زیر تعریف شده
"Data source=.\\SQLEXPRESS;Attachdbfilename=|DataDirecto ry|\\db\\AAZ.mdf;Integrated security=true;user Instance=true"
یعنی به خود فایل mdf اشاره میکنه
سوال اول : آیا این دیتابیس الان اتچ شده؟
اگر جواب نه هست باید چیکار کنم تا اتچ بشه
همون موتور SQL EXPRESS 2008 که روی سیستم مشتری هست برای اتچ شدن کافیه یا باید نسخه کامل SQL رو نصب کنم
سوال دوم : چطور میتونم توی برنامه یک فرم بزارم که کاربر هم بتونه از دیتابیس Backup بگیره و هم فایل Backup رو Restore کنه
ازتون خیلی خیلی ممنونم
وبازهم ملتمسانه ازتون میخوام بطور کامل مراحل رو توضیح بدین تا هم من بتونم متوجه بشم و هم بقیه دوستانی که بلد نیستن بعدها براتون دعا کنن
-
نقل قول: Backup و Restore کردن دیتابیس
-
نقل قول: Backup و Restore کردن دیتابیس
این 5 مسئله توش توضیح داده
Connection String
Load Without Attach
Add Picture to SQL
Attach & Detach
BackUp & Restore
موفق باشید
-
نقل قول: Backup و Restore کردن دیتابیس
سلام دوباره
دوست عزیز من از کدی که شما داده بودین استفاده کردم
زمان backup مشکلی نیست ولی موقع restore با پیام زیر مواجه میشم
Exclusive access could not be obtained because the database is in use.
RESTORE DATABASE is terminating abnormally.
Changed database context to 'master'.
-
نقل قول: Backup و Restore کردن دیتابیس
-
مشکل در بازیابی دیتابیس
سلام
من از کد زیر برای بازیابی دیتابیس استفاده میکنم
SqlCommand scom1 = new SqlCommand();
SqlConnection.ClearAllPools();
scom1.Connection = new SqlConnection("Data source=MAHNAZ-PC;Initial Catalog=marketing;Integrated Security=true");
scom1.Connection.Open();
string dbname = scom1.Connection.Database;
scom1.Connection.Close();
SqlConnection sc = new SqlConnection("Data source=MAHNAZ-PC;Initial Catalog=master;Integrated Security=true");
SqlCommand scom = new SqlCommand("use master ALTER DATABASE [" + dbname + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE RESTORE DATABASE [" + dbname + "] FROM DISK = '" + recovery_path + "' ALTER DATABASE [" + dbname + "] SET MULTI_USER", sc);
//SqlCommand scom = new SqlCommand("ALTER DATABASE [" + dbname + "] SET OFFLINE WITH ROLLBACK IMMEDIATE RESTORE DATABASE [" + dbname + "] FROM DISK = '" + recovery_path + "' ALTER DATABASE [" + dbname + "] SET ONLINE", sc);
sc.Open();
scom.ExecuteNonQuery();
sc.Close();
MessageBox.Show("بازیابی با موفقیت انجام شد ");
ولی در زمان اجرا یک Exception روی خط
scom.ExecuteNonQuery();
نشون میده.
The tail of the log for the database \"marketing\" has not been backed up. Use BACKUP LOG WITH NORECOVERY to backup the log if it contains work you do not want to lose. Use the WITH REPLACE or WITH STOPAT clause of the RESTORE statement to just overwrite the contents of the log.\r\nRESTORE DATABASE is terminating abnormally.\r\nChanged database context to 'master'.\r\nNonqualified transactions are being rolled back. Estimated rollback completion: 100%
لطفا راهنماییم کنید . نمیدونم مشکلش چیه
-
نقل قول: مشکل در بازیابی دیتابیس
داره میگه که پارامتر Recovery and replace رو نزاشتین
یک سرچ انجام بدید درباره این کد ، نمونه های کاملی گیرتون میاد
-
بكاپ رو به درستي ميگيرم ولي وقتي ميخوام رستور كنم خطا ميگيره، چرا؟
سلام دوستان من از برنامم بكاپ ميگيرم ولي وقتي رستور ميكنم خطا ميده ، اينم متن خطا راهنمايي كنيد لطفا
The tail of the log for the database "m" has not been backed up. Use BACKUP LOG WITH NORECOVERY to backup the log if it contains work you do not want to lose. Use the WITH REPLACE or WITH STOPAT clause of the RESTORE statement to just overwrite the contents of the log.
RESTORE DATABASE is terminating abnormally.
منظور از "m" نام ديتابس هست.
-
نقل قول: بكاپ رو به درستي ميگيرم ولي وقتي ميخوام رستور كنم خطا ميگيره، چرا؟
private void Restore(string filename)
{
try
{
string command = @"ALTER DATABASE DBName ET SINGLE_USER with ROLLBACK IMMEDIATE " + " USE master " + " RESTORE DATABASE DBName FROM DISK= N'" + filename + "'";
//string command = @"RESTORE DATABASE DBName FROM DISK ='" + filename + "' ";
this.Cursor = Cursors.WaitCursor;
SqlCommand ocommand = null;
SqlConnection oconnection = null;
oconnection = new SqlConnection("Data Source=(local);Initial Catalog=DBName ;user id=sa");
if (oconnection.State != ConnectionState.Open)
oconnection.Open();
ocommand = new SqlCommand(command, oconnection);
ocommand.ExecuteNonQuery();
this.Cursor = Cursors.Default;
MessageBox.Show("بازیابی اطلاعات از نسخه پشتیبان از با موفقیت انجام شد");
}
catch (Exception ex)
{
MessageBox.Show("Error : ", ex.Message);
}
}
-
نقل قول: بكاپ رو به درستي ميگيرم ولي وقتي ميخوام رستور كنم خطا ميگيره، چرا؟
خدمت دوست عزيز هم بگم من سرچ كردم ولي همه كدها و نمونه ها همين مشكل رو داشتند.
البته چند روز اول كه اين كدها رو نوشته بودم خوب كار ميكرد نميدونم چرا يك ماه شده كه ديگه رستور نميكنه و اين ارور رو نمايش ميده
-
نقل قول: بكاپ رو به درستي ميگيرم ولي وقتي ميخوام رستور كنم خطا ميگيره، چرا؟
دوست عزيز شما برامون اين خطا رو معني كن ما هم ياد بگيريم اگه زحمتي نيست
-
نقل قول: بكاپ رو به درستي ميگيرم ولي وقتي ميخوام رستور كنم خطا ميگيره، چرا؟
از این استفاده کن:
ALTER DATABASE DbName SET SINGLE_USER with ROLLBACK IMMEDIATE;
RESTORE DATABASE DbName FROM DISK= strFileName WITH FILE = 1, NOUNLOAD, STATS = 10 ,replace ;
ALTER DATABASE DbName SET MULTI_USER with ROLLBACK IMMEDIATE ;
-
نقل قول: بكاپ رو به درستي ميگيرم ولي وقتي ميخوام رستور كنم خطا ميگيره، چرا؟
نقل قول:
نوشته شده توسط
vhdysf
از این استفاده کن:
ALTER DATABASE DbName SET SINGLE_USER with ROLLBACK IMMEDIATE;
RESTORE DATABASE DbName FROM DISK= strFileName WITH FILE = 1, NOUNLOAD, STATS = 10 ,replace ;
ALTER DATABASE DbName SET MULTI_USER with ROLLBACK IMMEDIATE ;
در اين مورد بيشتر توضيح ميدي دوست عزيز
منظورم اينه كه اول خط اول و دوم رو اجرا كنم بعد خط سوم يا همه رو در يك دستور اجرا كنم
-
نقل قول: بكاپ رو به درستي ميگيرم ولي وقتي ميخوام رستور كنم خطا ميگيره، چرا؟
-
نقل قول: Backup و Restore کردن دیتابیس
سلام، دوستان
:ناراحت::گریه::ناراحت::گریه:: اراحت::گریه::ناراحت::گریه::ن راحت::گریه::ناراحت::گریه::نا احت::گریه:
کسی هست که کمکم بکنه
نحوه بکاپ گرفتن از sqlexpress رو می خواستم
هر کدی که می نویسم میگه دیتا بیسی در این شاخه وجود ندارد
این هم کدش:
SqlConnection con = new SqlConnection();
con.ConnectionString = "data source=.\\SQLEXPRESS;attachdbfilename="+Applicatio n.StartupPath+"\\TestDb.mdf;integrated security=true;user instance=true";
con.Open();
SqlCommand com=new SqlCommand();
com.Connection = con;
com.CommandText = "BACKUP DATABASE [" +Application.StartupPath+"\\TestDb.mdf] to DISK='k:\\aaa.BAk'";
com.ExecuteNonQuery();
con.Close();
-
نقل قول: Backup و Restore کردن دیتابیس
-
مشکل در Restore کردن بانک
سلام من با این کد از دیتابیس backup میگیرم ولی وقتی میخام restore کنم این اررور رو میده.
مشکل چیه ؟
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Library
{
public partial class backup : Form
{
public backup()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
}
private void backup_Click(object sender, EventArgs e)
{
pictureBox1.Visible = true;
#region Select Name
string strFileName = string.Empty;
saveFileDialog1.DefaultExt = "BAK";
saveFileDialog1.FileName = "BackupFile";
saveFileDialog1.Filter = @"SQL Backup files (*.BAK) |*.BAK|All files (*.*) |*.*";
saveFileDialog1.FilterIndex = 1;
saveFileDialog1.OverwritePrompt = true;
saveFileDialog1.Title = "Backup SQL File";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
strFileName = saveFileDialog1.FileName;
Backup(strFileName);
}
#endregion
}
private void backup_Load(object sender, EventArgs e)
{
pictureBox1.Visible = false;
}
private void Backup(string strFileName)
{
#region Store File Bak
SqlCommand oCommand = null;
SqlConnection oConnection = null;
try
{
string ConectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Library.mdf;Integrated Security=True;User Instance=True";
string Command = @"backup database [" + Application.StartupPath + "\\Library.mdf] to disk ='" + strFileName + "' with init,stats=10";
this.Cursor = Cursors.WaitCursor;
oConnection = new SqlConnection(ConectionString);
if (oConnection.State != ConnectionState.Open)
oConnection.Open();
oCommand = new SqlCommand(Command, oConnection);
oCommand.ExecuteNonQuery();
this.Cursor = Cursors.Default;
pictureBox1.Visible = false;
MessageBox.Show("تهیه نسخه پشتیبان انجام شد .");
}
catch (Exception ex)
{
MessageBox.Show("Error :" + ex.Message);
}
finally
{
oConnection.Close();
oCommand.Parameters.Clear();
oCommand.Dispose();
}
#endregion
}
private void restore_Click(object sender, EventArgs e)
{
#region Select File Bak
string strFileName = string.Empty;
openFileDialog1.Filter = @"SQL Backup files (*.BAK) |*.BAK|All files (*.*) |*.*";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Title = "Restore SQL File";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
strFileName = openFileDialog1.FileName;
Restore(strFileName);
}
#endregion
}
private void Restore(string strFileName)
{
#region Restore File Bak
SqlCommand oCommand = null;
SqlConnection oConnection = null;
try
{
string ConectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Library.mdf;Integrated Security=True;User Instance=True";
string Command = "ALTER DATABASE [" + Application.StartupPath + "\\Library.mdf] SET SINGLE_USER with ROLLBACK IMMEDIATE use master RESTORE DATABASE [" + Application.StartupPath + "\\db_market.mdf] FROM DISK='" + strFileName + "'";
this.Cursor = Cursors.WaitCursor;
oConnection = new SqlConnection(ConectionString);
if (oConnection.State != ConnectionState.Open)
oConnection.Open();
oCommand = new SqlCommand(Command, oConnection);
oCommand.ExecuteNonQuery();
this.Cursor = Cursors.Default;
MessageBox.Show("بازیابی انجام شد .");
}
catch (Exception ex)
{
MessageBox.Show("Error :" + ex.Message);
}
finally
{
oConnection.Close();
oCommand.Parameters.Clear();
oCommand.Dispose();
}
#endregion
}
}
}
The file 'C:\Users\Keyvan\Desktop\C-Sharp\Library\Library\bin\Debug\Library.mdf' cannot be overwritten. It is being used by database 'C:\USERS\KEYVAN\DESKTOP\C-SHARP\LIBRARY\LIBRARY\BIN\DEBUG\LIBRARY.MDF'.
File 'Library' cannot be restored to 'C:\Users\Keyvan\Desktop\C-Sharp\Library\Library\bin\Debug\Library.mdf'. Use WITH MOVE to identify a valid location for the file.
The file 'C:\Users\Keyvan\Desktop\C-Sharp\Library\Library\bin\Debug\Library_log.ldf' cannot be overwritten. It is being used by database 'C:\USERS\KEYVAN\DESKTOP\C-SHARP\LIBRARY\LIBRARY\BIN\DEBUG\LIBRARY.MDF'.
File 'Library_log' cannot be restored to 'C:\Users\Keyvan\Desktop\C-Sharp\Library\Library\bin\Debug\Library_log.ldf'. Use WITH MOVE to identify a valid location for the file.
Problems were identified while planning for the RESTORE statement. Previous messages provide details.
RESTORE DATABASE is terminating abnormally.
Nonqualified transactions are being rolled back. Estimated rollback completion: 100%.
Changed database context to 'master'.
-
نقل قول: مشکل در Restore کردن بانک
باید دیتابیس را به حالت stop درآورید بعد...
-
نقل قول: مشکل در Restore کردن بانک
نقل قول:
نوشته شده توسط
veniz2008
مرسی دوست عزیز ولی من مشکلم فقط تویه restore هست.
موقع backup گرفتن هیچ اروری نمیده
-
نقل قول: مشکل در Restore کردن بانک
نقل قول:
نوشته شده توسط
keyvan_s89
مرسی دوست عزیز ولی من مشکلم فقط تویه restore هست.
موقع backup گرفتن هیچ اروری نمیده
خوب کد restore اش رو استفاده کنید و اگر دیدید که backup اش هم بدردتون خورد میتونید استفاده کنید. ضمنا" روشی که در اون تاپیک گفتم با استفاده از stored procedure هاست که یکی از بهترین و پر سرعت ترین و امن ترین روش هاست.
متاسفانه اکثر کدهایی که برای Restore وجود داره دارای اشکال هست و من خودم این کد رو از بین چندین کد انتخاب کردم.(کاملا تست شده است).
موفق باشید
-
نقل قول: Backup و Restore کردن دیتابیس
برای تمامی کسایی که دیتابیسشون رو با SQL EXPRESS اتچ کردن یعنی کانکشن استرینگشون اینجوری هست
@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|MyDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
بگم اگر خطایی مربوطه به پیدا نکردن دیتابیس یا گیر دادن به کانکشن استرینگ دارید کافیه اسم دیتابیستون ور اخر کانکشن اضافه کنید تا مشکلتون حل بشه.مثل این پایینی(در اینجا MyDB)
@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|MyDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;Database=MyDB"
-
نقل قول: مشکل در Restore کردن بانک
نقل قول:
نوشته شده توسط
veniz2008
خوب کد restore اش رو استفاده کنید و اگر دیدید که backup اش هم بدردتون خورد میتونید استفاده کنید. ضمنا" روشی که در اون تاپیک گفتم با استفاده از stored procedure هاست که یکی از بهترین و پر سرعت ترین و امن ترین روش هاست.
متاسفانه اکثر کدهایی که برای Restore وجود داره دارای اشکال هست و من خودم این کد رو از بین چندین کد انتخاب کردم.(کاملا تست شده است).
موفق باشید
کد های restore رو نوشتم ولی برای backup رو قاطی کردم میشه یه بار کد backup رو بزارید ؟
-
نقل قول: مشکل در Restore کردن بانک
بکاپ گیری
private void button10_Click(object sender, EventArgs e)
{
string bname = DateTime.Now.ToString("yyyyMMddHHmm");
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.AddExtension = true;
saveFileDialog.CheckFileExists = false;
saveFileDialog.CheckPathExists = true;
saveFileDialog.OverwritePrompt = true;
saveFileDialog.FileName = "Backup" + bname;
saveFileDialog.Filter = "Backup File (*.Bak)|*.Bak";
saveFileDialog.DefaultExt = "Bak";
saveFileDialog.RestoreDirectory = true;
saveFileDialog.InitialDirectory = System.Windows.Forms.Application.StartupPath;
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
this.Refresh();
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\LMS_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 ='" + 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();
this.Refresh();
//progressBar1.PerformStep();
// progressBar1.Value = 100;
MessageBox.Show("نسخه پشتيبان به طور كامل ايجاد شد ", "پيام", MessageBoxButtons.OK, MessageBoxIcon.Information);
// progressBar1.Value = 0;
}
catch
{
MessageBox.Show("اشكال در اتصال به بانك اطلاعات\nلطفا مجدد تلاش كنيد", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
ریستور
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.AddExtension = true;
openFileDialog.CheckFileExists = false;
openFileDialog.CheckPathExists = true;
openFileDialog.Filter = "Backup File (*.Bak)|*.Bak";
openFileDialog.DefaultExt = "Bak";
openFileDialog.RestoreDirectory = true;
openFileDialog.InitialDirectory = System.Windows.Forms.Application.StartupPath;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
this.Refresh();
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\LMS_DB.mdf;Integrated Security=True;Connect Timeout=10;User Instance=True");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;
cmd.Connection.Close();
string query = "ALTER DATABASE [" + dbname + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ;RESTORE DATABASE [" + dbname + "] FROM DISK = '" + openFileDialog.FileName + "';ALTER DATABASE [" + dbname + "] SET MULTI_USER ;";
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();
//progressBar2.PerformStep();
//progressBar2.Value = 100;
MessageBox.Show("نسخه پشتيبان به طور كامل بازيابي شد ", "پيام", MessageBoxButtons.OK, MessageBoxIcon.Information);
// progressBar2.Value = 0;
}
catch
{
MessageBox.Show("اشكال در اتصال به بانك اطلاعات", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
-
نقل قول: مشکل در Restore کردن بانک
بخ نظر شما با استفاده از dllهای Smo بیاییم بک آپ و ریستور بگیریم از دیتابیس مشکلی نسبت به روش ساده هستش استفاده از dll های خود vs
-
بک آپ گرفتن از دیتابیس sql
سلام
می خواستم از دیتابیس sql تویه vs هم backup بگیرم هم restore کنم
می شه بگید چه راههایی هست و راحترین کدومه ؟
-
نقل قول: بک آپ گرفتن از دیتابیس sql
سلام
backup
string bname = DateTime.Now.ToString("yyyy-MM-dd-HH-mm");
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.AddExtension = true;
saveFileDialog.CheckFileExists = false;
saveFileDialog.CheckPathExists = true;
saveFileDialog.OverwritePrompt = true;
saveFileDialog.FileName = "Backup" + bname;
saveFileDialog.Filter = "Backup File (*.Bak)|*.Bak";
saveFileDialog.DefaultExt = "Bak";
saveFileDialog.RestoreDirectory = true;
saveFileDialog.InitialDirectory = System.Windows.Forms.Application.StartupPath;
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
this.Refresh();
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Library.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();
this.Refresh();
progressBar1.PerformStep();
progressBar1.Value = 100;
MessageBox.Show("نسخه پشتيبان به طور كامل ايجاد شد ", "پيام", MessageBoxButtons.OK, MessageBoxIcon.Information);
progressBar1.Value = 0;
restore
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.AddExtension = true;
openFileDialog.CheckFileExists = false;
openFileDialog.CheckPathExists = true;
openFileDialog.Filter = "Backup File (*.Bak)|*.Bak";
openFileDialog.DefaultExt = "Bak";
openFileDialog.RestoreDirectory = true;
openFileDialog.InitialDirectory = System.Windows.Forms.Application.StartupPath;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
this.Refresh();
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Library.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;
cmd.Connection.Close();
string query = "ALTER DATABASE [" + dbname + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ;RESTORE DATABASE [" + dbname + "] FROM DISK = '" + openFileDialog.FileName + "';ALTER DATABASE [" + dbname + "] SET MULTI_USER ;";
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.PerformStep();
progressBar1.Value = 100;
MessageBox.Show("نسخه پشتيبان به طور كامل بازيابي شد ", "پيام", MessageBoxButtons.OK, MessageBoxIcon.Information);
MessageBox.Show("برنامه باید دوباره راه اندازی شود ", "هشدار", MessageBoxButtons.OK, MessageBoxIcon.Information);
Application.Restart();
progressBar1.Value = 0;
-
نقل قول: بک آپ گرفتن از دیتابیس sql
-
نقل قول: بک آپ گرفتن از دیتابیس sql
نقل قول:
نوشته شده توسط
keyvan_s89
سلام
backup
string bname = DateTime.Now.ToString("yyyy-MM-dd-HH-mm");
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.AddExtension = true;
saveFileDialog.CheckFileExists = false;
saveFileDialog.CheckPathExists = true;
saveFileDialog.OverwritePrompt = true;
saveFileDialog.FileName = "Backup" + bname;
saveFileDialog.Filter = "Backup File (*.Bak)|*.Bak";
saveFileDialog.DefaultExt = "Bak";
saveFileDialog.RestoreDirectory = true;
saveFileDialog.InitialDirectory = System.Windows.Forms.Application.StartupPath;
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
this.Refresh();
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Library.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();
this.Refresh();
progressBar1.PerformStep();
progressBar1.Value = 100;
MessageBox.Show("نسخه پشتيبان به طور كامل ايجاد شد ", "پيام", MessageBoxButtons.OK, MessageBoxIcon.Information);
progressBar1.Value = 0;
restore
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.AddExtension = true;
openFileDialog.CheckFileExists = false;
openFileDialog.CheckPathExists = true;
openFileDialog.Filter = "Backup File (*.Bak)|*.Bak";
openFileDialog.DefaultExt = "Bak";
openFileDialog.RestoreDirectory = true;
openFileDialog.InitialDirectory = System.Windows.Forms.Application.StartupPath;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
this.Refresh();
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Library.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;
cmd.Connection.Close();
string query = "ALTER DATABASE [" + dbname + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ;RESTORE DATABASE [" + dbname + "] FROM DISK = '" + openFileDialog.FileName + "';ALTER DATABASE [" + dbname + "] SET MULTI_USER ;";
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.PerformStep();
progressBar1.Value = 100;
MessageBox.Show("نسخه پشتيبان به طور كامل بازيابي شد ", "پيام", MessageBoxButtons.OK, MessageBoxIcon.Information);
MessageBox.Show("برنامه باید دوباره راه اندازی شود ", "هشدار", MessageBoxButtons.OK, MessageBoxIcon.Information);
Application.Restart();
progressBar1.Value = 0;
دوست عزیز من از راهنماییت ولی پیغام خطا می ده می گه نمی تونه دیتابیس رو پیدا که
-
Restore دیتا بیس
من از کد زیر برای ریستور کردن دیتا بیس استفاده کردم اما نمی دونم بجای use master باید چی نوشت.لطفاً راهنمایی کنید
;"'"+"ALTER DATABASE TalayPerans SET SINGLE_USER with ROLLBACK IMMEDIATE" + use master "+ "RESTORE DATABASE TalayPerans FROM DISK='" + strFileName
-
نقل قول: Restore دیتا بیس
-
نقل قول: بک آپ گرفتن از دیتابیس sql
دوستان این کد مشکلی داره ؟
SqlConnection con = new SqlConnection(str);
string name = "PB";
string cmd = "USE MASTER BACKUP DATABASE '"+name+"' TO DISK='"+textBox1.Text+"'";
SqlCommand com=new SqlCommand(cmd,con);
con.Open();
com.ExecuteNonQuery();
con.Close();
-
كمك درباره restore كردن اطلاعات بانك sql
سلام
من يك تابع تعريف كردم برايrestore كردن ولي كار نمي كنه اينم كدش private void Restore(string strFileName)
{
try
{
string command = "ALTER DATABASE bb SET SINGLE_USER with ROLLBACK IMMEDIATE " +
"use master " +
" RESTORE DATABASE bb FROM DISK='" + strFileName + "'";
this.Cursor = Cursors.WaitCursor;
SqlCommand oCommand = null;
SqlConnection oConnection = null;
oConnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\bb.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
if (oConnection.State != ConnectionState.Open)
oConnection.Open();
oCommand = new SqlCommand(command, oConnection);
oCommand.ExecuteNonQuery();
this.Cursor = Cursors.Default;
MessageBox.Show("بازياب اطلاعات از نسخه پشتيبان با موفقيت انجام شد");
}
catch (Exception ex)
{
MessageBox.Show("Error Occurd :" + ex.Message);
}
اينم كد رويداد كليد باتومش string strFileName=string.Empty;
openFileDialog1.Filter = @"SQL Backup files (*.BAK) |*.BAK|All files
(*.*) |*.*";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Title = "Restore SQL File";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
strFileName = saveFileDialog1.FileName;
Restore(strFileName);