PDA

View Full Version : سوال: مشکلی کوچک با بک آپ گیری



R_Rajaee_Rad
دوشنبه 26 فروردین 1392, 13:48 عصر
سلام
من قسمت مربوط به بک آپ سیستم رو کامل نوشتم اما فقط یه موردی هست که قبل از بک آپ نباید هیچ کانکشنی باز باشه.یعنی اگر کاربر به سیستم لاگین کنه(خواندن یوزر و pass از بانک) بعد بره یک راست بک اپ بگیره سیستم خطای لاگین به بانک رو میده
تمام قسمت های مربوط به بانک اطلاعاتی برنامه با linq هست فقط بک آپ گیری با ado.net
برای رفع مشکل چکار باید کرد؟
ممنون

R_Rajaee_Rad
دوشنبه 26 فروردین 1392, 17:40 عصر
اینم کد مربوطه



private void Backup(string file)
{

SqlCommand oCommand = null;
SqlConnection oConnection = null;

string ConectionString =
@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\db.mdf;Integrated Security=True;User Instance=True";
string Command = @"backup database [" + Application.StartupPath + "\\db.mdf] to disk ='" +
file + "' 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;

FarsiMessageBox.Show("پشتیبان گیری با موفقیت انجام شد", "اطلاع",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}

5225507
دوشنبه 26 فروردین 1392, 18:08 عصر
کانکشن دیتا بیس رو به این شکل تغییر بده:
private void BackUp(string path)
{
System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(@"data source=.\SQLEXPRESS;integrated security=True;connect timeout=30;;user instance=True;");
System.Data.SqlClient.SqlCommand db = new System.Data.SqlClient.SqlCommand();
db.Connection = con;
con.Open();
db.CommandText = (@"BACKUP DATABASE [" + Application.StartupPath + @"\db.mdf] TO DISK ='" + path.ToString() + "' WITH NO_COMPRESSION ,CONTINUE_AFTER_ERROR ,FORMAT, INIT, NAME = N'accounting-Full Database Backup', SKIP,NOREWIND, NOUNLOAD, STATS = 10");

db.ExecuteNonQuery();
con.Close();
}

alexmcse
دوشنبه 26 فروردین 1392, 18:41 عصر
سلام
فایل آموزشی را از لینک زیر دانلود کن
http://alexmcse.blogsky.com/

R_Rajaee_Rad
چهارشنبه 28 فروردین 1392, 07:14 صبح
کانکشن دیتا بیس رو به این شکل تغییر بده:
private void BackUp(string path)
{
System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(@"data source=.\SQLEXPRESS;integrated security=True;connect timeout=30;;user instance=True;");
System.Data.SqlClient.SqlCommand db = new System.Data.SqlClient.SqlCommand();
db.Connection = con;
con.Open();
db.CommandText = (@"BACKUP DATABASE [" + Application.StartupPath + @"\db.mdf] TO DISK ='" + path.ToString() + "' WITH NO_COMPRESSION ,CONTINUE_AFTER_ERROR ,FORMAT, INIT, NAME = N'accounting-Full Database Backup', SKIP,NOREWIND, NOUNLOAD, STATS = 10");

db.ExecuteNonQuery();
con.Close();
}

انجام دادم
از این خط

db.ExecuteNonQuery();
و این خطا رو میده


Database '..../db.MDF' is already open and can only have one user at a time.
BACKUP DATABASE is terminating abnormally.