PDA

View Full Version : سوال: بروز خطا در هنگام بک آپ گرفتن از دیتابیس در لوکال



mehdi-ghafari
یک شنبه 28 اسفند 1390, 22:19 عصر
قبل از هرچیز از مدیران خواهش میکنم تاپیک رو پاک نکن. چون من اول جستجو کردم و کلی کد که دوستان گذاشته کرده بودند رو تست زدم (البته بعضیاشم سر در نیاوردم:چشمک:)

ببینید من تو یه پروژه از کد زیر تو محیط لوکال(سیستم خودم) از دیتابیسم پشتیبان تهیه میکردم خیلی ذاحت. ولی از همین کد تو یه پروژه دیگه روی سیستم خودم وقتی میخوام استفاده کنم خطا میده:افسرده:
من از دیتابیس خود VS استفاده میکنم (تو هر دوتا پروژه)؟؟ جالب اینجاست که با این کد هنوز تو پروژه اول راحت میشه پشتیبان گرفت؟:متعجب:

لطفا راهنمایی بفرمائید ممنون میشم
اینم کدم :

Dim con As New SqlConnection(ConnectionString.SiteConnectionStrin g.strConn)
Dim cmd As New SqlCommand("backup database @dbName to disk=@disk", con)
cmd.Parameters.AddWithValue("@dbName", MapPath("~/App_Data/DBName.mdf"))
cmd.Parameters.AddWithValue("@disk", "C:\Inetpub\wwwroot\DBName.bak")
Using con
con.Open()
cmd.ExecuteNonQuery()
End Using

اینم خطایی که میده ::عصبانی++:

Invalid database name 'E:\APPs\WebSite2\App_Data\DBName.mdf' specified for backup or restore operation.
BACKUP DATABASE is terminating abnormally.

اگر مهمه اینم کانکشنم :
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DBName.mdf;Integrated Security=True;User Instance=True
این پیغام رو توی جستجویی که کردم دوستان توضیح داده بودن ولی روی اپلیکشن های دسکتاپ بود.:افسرده::ناراحت:

fakhravari
یک شنبه 28 اسفند 1390, 22:51 عصر
backup

protected void Button2_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(DAL.ConnectionString);
con.Open();

SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
string dbname = cmd.Connection.Database;
con.Close();
SqlConnection.ClearAllPools();


string query = "BACKUP DATABASE [" + dbname + "] TO DISK ='" + Server.MapPath(@"~/") + @"\backup.bak'";
con.Open();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
con.Close();
}


RESTORE

protected void Button3_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(DAL.ConnectionString);
con.Open();

SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
string dbname = cmd.Connection.Database;
con.Close();
SqlConnection.ClearAllPools();

string query = "ALTER DATABASE [" + dbname + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ;RESTORE DATABASE [" + dbname + "] FROM DISK = '" + Server.MapPath(@"~/") + "\\backup.bak';ALTER DATABASE [" + dbname + "] SET MULTI_USER ;";
cmd.Connection = con;
con.Open();

con.ChangeDatabase("master");
cmd.CommandText = query;
cmd.ExecuteNonQuery();
con.Close();

}