PDA

View Full Version : back up از دیتابیس و ارور !



franchesco
دوشنبه 05 تیر 1391, 22:08 عصر
با سلام

من یک webpage طراجی کرم تا از دیتابیس بک آپ بگیره.ولی ارور داره !

الن کد منه:


try
{
string _DatabaseName = ddlDatabases.SelectedItem.Text.ToString();

_DatabaseName.Replace(@"\",@"\\");



string _BackupName = _DatabaseName + "_" + DateTime.Now.Day.ToString() + "_" + DateTime.Now.Month.ToString() + "_" + DateTime.Now.Year.ToString() + ".bak";

SqlConnection sqlConnection = new SqlConnection();
sqlConnection.ConnectionString = _ConnectionString;
sqlConnection.Open();
string sqlQuery = "BACKUP DATABASE " + _DatabaseName + " TO DISK = 'C:\\SQLServerBackups\\" + _BackupName + "' WITH FORMAT, MEDIANAME = 'Z_SQLServerBackups', NAME = '" + _BackupName + "';";
SqlCommand sqlCommand = new SqlCommand(sqlQuery, sqlConnection);
sqlCommand.CommandType = CommandType.Text;
int iRows = sqlCommand.ExecuteNonQuery();
sqlConnection.Close();
lblMessage.Text = "The " + _DatabaseName + " database Backup with the name " + _BackupName + " successfully...";
ReadBackupFiles();
}
catch (SqlException sqlException)
{
lblMessage.Text = sqlException.Message.ToString();
}
catch (Exception exception)
{
lblMessage.Text = exception.Message.ToString();
}
}


و اروری که نشان میده اینه !



Incorrect syntax near 'C:'. Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.

fakhravari
دوشنبه 05 تیر 1391, 23:07 عصر
string query = "BACKUP DATABASE [" + dbname + "] TO DISK ='" + Server.MapPath(@"~/") + @"\backup.bak'";

franchesco
سه شنبه 06 تیر 1391, 01:46 صبح
حالا این ارور رو میده !


Unable to open the physical file "C:\Users\sa\Desktop\WebApplication5\WebApplication 5\App_Data\Database1.mdf". Operating system error 3: "3(The system cannot find the path specified.)". BACKUP DATABASE is terminating abnormally.

fakhravari
سه شنبه 06 تیر 1391, 12:41 عصر
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();
}
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();

}

aminghaderi
سه شنبه 06 تیر 1391, 14:50 عصر
حالا این ارور رو میده !


Unable to open the physical file "C:\Users\sa\Desktop\WebApplication5\WebApplication 5\App_Data\Database1.mdf". Operating system error 3: "3(The system cannot find the path specified.)". BACKUP DATABASE is terminating abnormally.
نرم افزار مدیریت هاست شما چیست؟؟

franchesco
سه شنبه 06 تیر 1391, 16:42 عصر
نمیدونم چرا با اون که همه چی درسته این ارور رو میده !!!
میگه همپین دیتابیسی نیست !

fakhravari
سه شنبه 06 تیر 1391, 22:16 عصر
اگر پست منو یه تستی میزدی جواب میگرفتی.
SqlConnection.ClearAllPools();

franchesco
سه شنبه 06 تیر 1391, 23:38 عصر
دوست عزیز این کد رو داره. اگه عکس رو ببینی یک خط مونده به query این فرمان هست! ولی بازم جواب نداد!

fakhravari
چهارشنبه 07 تیر 1391, 00:59 صبح
SqlConnection con = new SqlConnection(@"Data Source=COMPUTER1\SQLEXPRESS;Initial Catalog=ss;Integrated Security=True");
ببنید اصلا این error که میاد ربطی به کد های من نداره. و میگه دیتابیسی نیست اصلا :متفکر:
کد ها تست شده.
ولی در کل باید ببینید هاست همچین اجازه ای را میده

aminghaderi
چهارشنبه 07 تیر 1391, 09:29 صبح
ولی در کل باید ببینید هاست همچین اجازه ای را میده
دقیقا !
قبل از کد و بررسی کد ها باید ببنیم که ابتدا شما در LOCAL برنامه را اجرا می فرمایید یا در HOST ؟
اگر HOST نرم افزار مدیرت هاست چیست؟
اگر لوکال هست که باید بررسی عمیق تری بشه ، چون کد ها به نظر من هم مشکلی نداره.

franchesco
چهارشنبه 07 تیر 1391, 12:01 عصر
من لوکال تست میکنمو ولی هنوز متوجه نشدم مشکل چی !

fakhravari
چهارشنبه 07 تیر 1391, 12:40 عصر
شما باید از هاست یک وب منیجر بگیرید.
وب منیجر یه محیطی داره که میتونید restor - bak کنید دیتابییس