PDA

View Full Version : سوال: خطا در بازگردانی اطلاعات در سی شارپ



pesare
سه شنبه 21 مرداد 1393, 20:16 عصر
سلام دوستان

من برای Restor کردن از کد زیر استفاده میکنم :

string sql = "ALTER DATABASE [" + Application.StartupPath + "\\DB.mdf] SET SINGLE_USER with ROLLBACK IMMEDIATE use master RESTORE DATABASE [" + Application.StartupPath + "\\DB.mdf] FROM DISK='" + textBox2.Text + "'";

و این خطا رو میده :


User does not have permission to alter database , the database does not exist, or the database is not in a state that allows access checks.ALTER DATABASE statement failed.
The file 'Db.mdf' cannot be overwritten. It is being used by database DB.MDF'.
File 'DB' cannot be restored to 'DB.mdf'. Use WITH MOVE to identify a valid location for the file.
The file 'DB_log.ldf' cannot be overwritten. It is being used by database 'DB.MDF'.
File 'DB_log' cannot be restored to 'DB_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.
Changed database context to 'master'.




اساتید لطفا کمک کنید , هر راهی رو امتحان کردم جواب نداد که نداد, ممنون.

systam
سه شنبه 21 مرداد 1393, 21:14 عصر
سلام
بانک روی sql server و یا sql express احیانا باز نیست

pesare
سه شنبه 21 مرداد 1393, 22:24 عصر
بانک بازه , Backup میگیره , اما مقع restor این خطا رو میده

pesare
پنج شنبه 23 مرداد 1393, 10:52 صبح
اساتید لطفا کمک کنید

pesare
پنج شنبه 23 مرداد 1393, 21:22 عصر
اساتید لطفا کمک کنید

systam
پنج شنبه 23 مرداد 1393, 22:11 عصر
سلام
برنامه رو ضمیمه کن
من در برنامه ها اسن کد رو استفاده میکنم جواب میده

"USE MASTER RESTORE DATABASE [" + System.Windows.Forms.Application.StartupPath + "] FROM DISK = N'" + Open1.FileName.ToString + " '"

pesare
پنج شنبه 23 مرداد 1393, 22:52 عصر
من با sql management stadiu بک آپ و ریستور میکنم کار میکنه , وفتی اسکریپت میگیرم و میزارم تو برنامم کار نمیکنه

jd.mn98
پنج شنبه 23 مرداد 1393, 23:01 عصر
از این دستور استفاده کنید

USE [master]
ALTER DATABASE [databasename]
SET SINGLE_USER WITH ROLLBACK IMMEDIATE




-- Restore Command


USE [master]
ALTER DATABASE [databasename]
SET MULTI_USER

pesare
پنج شنبه 23 مرداد 1393, 23:23 عصر
منم از همین دستور استفاده میکنم , به Alter اول که میرسه پیغام میده دیگه , مشکل من دقیقا همینه

jd.mn98
جمعه 24 مرداد 1393, 13:18 عصر
قبلا کار میکرد ؟؟
شاید در پرمیشن ها تغییراتی به وجود آمده که نمیشه
اسم دقیق دیتابیستون DB هست یا Db ??