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

نام تاپیک: In use ماندن دیتابیس با وحود استفاده از Connection.Close

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کاربر دائمی آواتار reza6384
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران - شهرک ژاندارمری
    سن
    40
    پست
    740

    In use ماندن دیتابیس با وحود استفاده از Connection.Close

    سلام دوستان.
    سوالم در نگاه اول تکراری به نظر میرسه. اما در تاپیک های قبلی به نتیجه نرسیدم.
    یک تاپیک به نام حل مشکل پشتیبان گیری و بازیابی برای همیشه رو SubZero ایجاد کرد و با اون کد تونستم توی VB.NET 2005 برای برنامه ام Backup و Restore درست کردم.

    اما مشکل من در VB.Net 2003 هست.

    این کدی هست که دارم :

    مقدار _BackupFile توسط FileDialog داده میشه.


    PublicClass frBackupRestore
    Inherits System.Windows.Forms.Form
    Dim BackupTice AsString
    '-------------------------------------------------
    Dim oSQLServer AsNew SQLDMO.SQLServer
    DimWithEvents oBackup AsNew SQLDMO.Backup
    DimWithEvents oRestore AsNew SQLDMO.Restore
    '----------------------------------------------
    Dim _INSTANCE AsString = "."
    Dim _USER AsString = "sa"
    Dim _PWD AsString = ""
    Dim _BACKUPFILE AsString = ""
    Dim _DATABASE AsString = "Retail"

    PrivateSub doBackup()

    With oBackup
    .Files = _BACKUPFILE
    .Database = _DATABASE
    .BackupSetName = "MyRetailBackup"
    .BackupSetDescription = "Backup from VB.NET application"
    .SQLBackup(oSQLServer)
    EndWith

    MessageBox.Show("Backup Completed Sucessfully", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information)
    EndSub


    PrivateSub doRestore()

    With oRestore
    '.Devices = "[NorthwindBackup]"
    .Files = _BACKUPFILE
    .Database = _DATABASE
    .ReplaceDatabase = True
    .SQLRestore(oSQLServer)
    EndWith
    MessageBox.Show("Restore Completed Successfully", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information)
    EndSub


    PrivateSub frmBackupRestore_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
    Data.Connection.Connection.Close()
    Data.Connection.Connection.Dispose()
    oSQLServer.Connect(".", "sa", "")
    EndSub


    EndClass


    در این برنامه، یک NameSpace هست به نام Data و کانکشن دیتابیس برنامه از طریق
    Data.Connection.Connection
    قابل دسترسیه. یعنی در فرم Login این کانکشن مقداردهی میشه و open میشه.

    من با این کد Backup رو انجام میدم. اما برای Restore کردن error زیر رو نمایش میده :

    من نمی دونم چرا با اینکه در FormLoad می نویسم Data.Connection.Connection.Close

    و به علاوه وقتی ConnectionState رو قبل از Restore کردن چک میکنم نشون میده که Closed هست ( هر جا چک میکنم میگه Closed هست ) بازهم وقت Restore کردن میگه Database is in use.

    در ضمن اگر بنویسم Data.Connection.Connection.Open و بعد هم Connection.State رو چک کنم میگه Closed و واسه همین نمی تونم از Data.Connection.Connection.ChangeDatabase استفاده کنم .

    نکته بعدی اینه که اگر فرم ذخیره و بازیابی رو به عنوان StartUp Form انتخاب کنم این کار به درستی انجام میشه.

    تقریبا دیگه دارم دیوونه میشم.
    عکس های ضمیمه عکس های ضمیمه
    آخرین ویرایش به وسیله reza6384 : سه شنبه 30 مهر 1387 در 15:05 عصر

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

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