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

نام تاپیک: مشکل backup و Restore فقط بعد از نصب برنامه!(هنگام دیباگ بدون مشکل)

  1. #1
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591

    مشکل backup و Restore فقط بعد از نصب برنامه!(هنگام دیباگ بدون مشکل)

    وقتی هنگام Debug برنامه از دیتابیس backup و Restore میگیرم هیچ مشکلی ندارم و تمام
    کار با موفقیت انجام میشه.
    اما وقتی برای برنامه setup درست میکنم یا به عبارتی publish میکنم، بعد از نصب برنامه نه Backup میگیره و نه
    Restore میکنه.
    کدهایی که استفاده کردم را در زیر میذارم

    راستی من دیتابیسم را به برنامه اتچ(Attach) کردم
    ا
    ین هم کانکشن استرینگ:
    Mycn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector  y|\DataBase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;");
    این هم کدبکاپ:
    cmd.CommandText = @"backup database [" + Application.StartupPath + "\\DataBase.mdf] to disk =N'"
    + PATH + "' with init, NAME = N'accounting-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
    ;
    و این هم کد ریستور:
    cmd.CommandText = "ALTER DATABASE [" + Application.StartupPath + "\\DataBase.mdf] SET OFFLINE WITH ROLLBACK IMMEDIATE"
    + " ALTER DATABASE [" +
    Application.StartupPath + "\\DataBase.mdf] SET MULTI_USER"
    + " RESTORE DATABASE [" +
    Application.StartupPath + "\\DataBase.mdf] FROM DISK =N'" + mypath + "' WITH RECOVERY,REPLACE";
    یه بار دیگه یادآوری کنم که کدها موقع Debug مشکلی ندارن و وقتی برنامه را برای مشتری نصب میکنیم اجرا نمیشن

  2. #2
    کاربر دائمی
    تاریخ عضویت
    تیر 1388
    محل زندگی
    یزد
    پست
    727

    نقل قول: مشکل backup و Restore فقط بعد از نصب برنامه!(هنگام دیباگ بدون مشکل)

    تو لینک زیر یک مثال گذاشتم (پست شماره 624)
    https://barnamenevis.org/showthread.p...ارپ/page63
    امیدوارم مشکلت حل بشه

  3. #3
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591

    نقل قول: مشکل backup و Restore فقط بعد از نصب برنامه!(هنگام دیباگ بدون مشکل)

    از شما بسیار ممنونم

    ولی این کد هم هنگام ریستور ارور زیر را میده:
    A transport-level error has occurred
    when sending the request to
    the server. (provider: Named Pipes
    Provider, error: 0 - No process is
    on the other end of the pipe.)


    من با تغییرات بسیار کم از کد شما استفاده کردم
    آیا چیز دیگه ای لازمه:


    من کد شما را در کلاسی به نام بک آپ گذاشتم و از اونجا فراخوانی میکنم
    این هم بخشی از کلاس و کد شما:

    class ClassBackUp
    {

    public DataView Dvbak;
    MyDbRun DbRun;
    SqlCommand cmd;

    public void MakeBackUpFiles(string Path)
    {
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\DBAMLAK1.mdf;Integrated Security=True;Connect Timeout=10;User Instance=True");
    if (cmd.Connection.State == ConnectionState.Closed)
    {
    cmd.Connection.Open();
    }
    string dbname = cmd.Connection.Database;//'گرفتن نام کامل دیتابیس
    cmd.Connection.Close();

    SqlConnection.ClearAllPools();
    string query = "BACKUP DATABASE [" + dbname + "] TO DISK ='" + Path + "' ";
    cmd.Connection = new SqlConnection("Data Source=.\\sqlexpress;Integrated Security=True;Connect Timeout=30;User Instance=True");
    if (cmd.Connection.State == ConnectionState.Closed)
    {
    cmd.Connection.Open();
    }
    cmd.CommandText = query;
    cmd.ExecuteNonQuery();
    cmd.Connection.Close();
    MessageBox.Show("پشتیبان گیری از اطلاعات با موفقیت انجام شد");
    }

    public void MakeRestoreFile(string Path)
    {
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\DBAMLAK1.mdf;Integrated Security=True;Connect Timeout=10;User Instance=True");
    if (cmd.Connection.State == ConnectionState.Closed)
    {
    cmd.Connection.Open();
    }
    string dbname = cmd.Connection.Database;
    cmd.Connection.Close();

    string query = "ALTER DATABASE [" + dbname + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ;USE master; RESTORE DATABASE [" + dbname + "] FROM DISK = '" + Path + "' WITH RECOVERY,REPLACE ;ALTER DATABASE [" + dbname + "] SET MULTI_USER ;";
    cmd.Connection = new SqlConnection("Data Source=.\\sqlexpress;Integrated Security=True;Connect Timeout=30;User Instance=True"
    );
    if (cmd.Connection.State == ConnectionState.Closed)
    {
    cmd.Connection.Open();
    }
    cmd.CommandText = query;
    cmd.ExecuteNonQuery();
    cmd.Connection.Close();


    MessageBox.Show("بازیابی اطلاعات با موفقیت انجام شد");

    }
    آخرین ویرایش به وسیله zayens : چهارشنبه 08 دی 1389 در 13:14 عصر

  4. #4
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591

    نقل قول: مشکل backup و Restore فقط بعد از نصب برنامه!(هنگام دیباگ بدون مشکل)

    کسی نمیدونه؟

  5. #5
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591

    نقل قول: مشکل backup و Restore فقط بعد از نصب برنامه!(هنگام دیباگ بدون مشکل)

    بهتر بود قبل از این سوال یه ذره سرچ می کردم!
    جوابشو پیدا کردم.
    علت ارور زیر اینه که کد
    System.Data.SqlClient.SqlConnection.ClearAllPools(  );
    را بعد از ریستور کردن باید میذاشتم

    ارور:
    A transport-level error has occurred
    when sending the request to
    the server. (provider: Named Pipes
    Provider, error: 0 - No process is
    on the other end of the pipe.)

  6. #6
    کاربر دائمی آواتار abbas.oveissi
    تاریخ عضویت
    دی 1389
    محل زندگی
    تهران
    پست
    578

    نقل قول: مشکل backup و Restore فقط بعد از نصب برنامه!(هنگام دیباگ بدون مشکل)

    نقل قول نوشته شده توسط zayens مشاهده تاپیک
    بهتر بود قبل از این سوال یه ذره سرچ می کردم!
    جوابشو پیدا کردم.
    علت ارور زیر اینه که کد
    System.Data.SqlClient.SqlConnection.ClearAllPools(  );
    را بعد از ریستور کردن باید میذاشتم

    ارور:
    A transport-level error has occurred
    when sending the request to
    the server. (provider: Named Pipes
    Provider, error: 0 - No process is
    on the other end of the pipe.)
    اشکال نداره،من یه چیز جدید یاد گرفتم

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

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