PDA

View Full Version : مشکل در restore پایگاه داده



mehrab1387
یک شنبه 15 فروردین 1389, 22:22 عصر
من با sql server express edition یک پایگاه داده درست کردم و با کد زیر عملیات restore را انجام میدهم.
public void restore(string str)
{
{
con = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=alghadir;Integrated Security=True");
cmd = new SqlCommand();

string f = @"use master;RESTORE DATABASE [alghadir] FROM DISK = N'" + str + "' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10";
cmd.Connection = con;

cmd.CommandText = f;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("بازیابی با موفقیت انجام شد");
}
اما خطای زیر را میدهد.(البته در خود اس کیو ال که اجرا میکنم درست کار میکند اما در سی شارپ خطا می دهد)



Exclusive access could not be obtained because the database is in use.

RESTORE DATABASE is terminating abnormally.

Changed database context to 'master'.

کسی می تواند حلش کند؟

ممنون میشم چون تا پس فردا باید برنامه را تحویل بدهم:ناراحت:

spring69
سه شنبه 17 فروردین 1389, 18:10 عصر
سلام.
از کد زیر استفاده کن، امیدوارم مشکلت حل بشه.


Dim con As New SqlConnection(strconnection)
Dim com As New SqlCommand("Use Master;ALTER DATABASE hesabdar SET SINGLE_USER with ROLLBACK IMMEDIATE;" & _
"RESTORE DATABASE hesabdar FROM DISK= '" & path & "' with REPLACE;" & _
"ALTER DATABASE hesabdar SET MULTI_USER", con)
con.Open()
com.ExecuteNonQuery()
MessageBox.Show(" كپي پشتيبان با موفقيت بازگرداني شد" & vbCrLf & "لطفا برنامه را دوباره اجرا كنيد", "اعلام", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
con.Close()

imanamami
چهارشنبه 18 فروردین 1389, 14:43 عصر
سلام این خطا برای :
در حال اجرا بودن پایگاه داده است.وقتی فایلی در حال کار کردن باشه نمی شه روی آن تغیراتی از قبیل حذف ، تغیر نام و ... انجام داد.