نمایش نتایج 1 تا 3 از 3

نام تاپیک: بازیابی یا ریستور بانک اطلاعاتی در برنامه

  1. #1
    کاربر دائمی آواتار neda_dela
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    زمین خدا
    پست
    323

    Question بازیابی یا ریستور بانک اطلاعاتی در برنامه

    سلام
    بچه ها تو رو خدا یکی منو کمک کنه یه بار دیگه هم این س.وال رو مطرح کردم ولی جواب نگرفتم امیدوارم این بار جواب بگیرم
    ببینید من کد پشتیبان گیری و ریستور رو میذارم . کد پشتیبانم که جواب میده ولی ریستور نخیر جواب نمیده

    if
    (MessageBox.Show("™یں êی¦يںىی§ ںھ ںëک ںلéںمں¢ی پ¬¢ی ںë گی©ی ëêںیی§؟", "¥©ں«¢ ىêگںê", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
    {
    string strFileName = string.Empty;
    saveFileDialog1.Filter =
    @"sql backup file (*.bak) | *.bak|all files (*.*) |*.*";
    saveFileDialog1.FilterIndex = 1;
    saveFileDialog1.Title =
    "¨¦ی©ى «ںھی هںیé پ¬¢ی ںë";
    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
    Application.DoEvents();
    strFileName = saveFileDialog1.FileName;
    SqlConnection con = newSqlConnection();
    con.ConnectionString =
    "Data Source=.;Initial Catalog=quran;Integrated Security=True";
    SqlCommand com = newSqlCommand();
    try
    {
    con.Open();
    string query = "BACKUP DATABASE quran TO DISK = '" + strFileName + "'";
    com.CommandText = query;
    com.Connection = con;
    com.ExecuteNonQuery();
    con.Close();
    MessageBox.Show("پشتیبان گیری به درستی انجام شد");
    }
    catch
    {
    MessageBox.Show("اشکال در ارتباط با بانک اطلاعاتی");
    }
    }
    }

    کد ریستور

    if
    (MessageBox.Show("™یں êی¦يںىی§ «ی«¢ê ©ں ںھیں ی کëی§؟", "¥©ں«¢ ىêگںê", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
    {
    string strFileName = string.Empty;
    openFileDialog1.Filter =
    @"sql backup file (*.bak) | *.bak|all files (*.*) |*.*";
    openFileDialog1.FilterIndex = 1;
    openFileDialog1.Title =
    "ں«¢هں§ى ںھ هںیé پ¬¢ی ںë";
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
    Application.DoEvents();
    strFileName = openFileDialog1.FileName;
    SqlConnection con = newSqlConnection();
    con.ConnectionString =
    "Data Source=.;Initial Catalog=quran;Integrated Security=True";
    SqlCommand com = newSqlCommand();
    try
    {
    string query = "USE master RESTORE DATABASE [quran] FROM DISK = '" + strFileName + "'";
    com.CommandText = query;
    com.Connection = con;
    con.Open();
    com.ExecuteNonQuery();
    con.Close();
    MessageBox.Show(" بازیابی بانک اطلاعاتی به درستی انجام شد");
    }
    catch
    {
    MessageBox.Show("اشکال در ارتباط با بانک اطلاعاتی");
    }
    }
    }

    خطا داره:
    Exclusive access could not be obtained because the database is in use.
    RESTORE DATABASE is terminating abnormally.
    Changed database context to 'master'.
    فکر کنم منظورش اینه که چون بانک فعاله و در حال استفاده هست نمیشه این کار انجام بشه
    چی کار کنم حالا؟

  2. #2

    نقل قول: بازیابی یا ریستور بانک اطلاعاتی در برنامه

    بانک در حال استفاده است باید کانکشن free شود

  3. #3

    نقل قول: بازیابی یا ریستور بانک اطلاعاتی در برنامه

    منم این مشکل داشتم، یکی از دوستان تونست مشکلمو حل کنه، حالا کدشو می زارم تا مشکل توام حل بشه !

    if (openFileDialog1.FileName.EndsWith(".bak") == true)
    {

    string s1 = "ALTER DATABASE [C:\\ForooshgaheKala_Database.mdf] SET OFFLINE WITH ROLLBACK IMMEDIATE";

    string s2 = "ALTER DATABASE [C:\\ForooshgaheKala_Database.mdf] SET MULTI_USER";

    string query = "RESTORE DATABASE [C:\\ForooshgaheKala_Database.mdf] FROM DISK ='" + openFileDialog1.FileName + "' WITH RECOVERY,REPLACE";

    SqlCommand cmd = new SqlCommand();
    cmd.CommandText = s1;
    cmd.Connection = connect;
    cmd.ExecuteNonQuery();

    cmd.CommandText = s2;
    cmd.Connection = connect;
    cmd.ExecuteNonQuery();

    cmd.CommandText = query;
    cmd.Connection = connect;
    cmd.ExecuteNonQuery();

    cmd.Dispose();

    connect.Close();


قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •