سلام
تابع زیر تمامی کارهای معمول مربوط به خود پایگاه داده را انجام میده مثل
Backup, Restore , Attach, Dettach
کافیه کوئری مورد نظر را به تابع بفرستی
public static bool ExecuteQuery(string cmdText)
{
using (SqlConnection con = new SqlConnection("Server=.\\SQLEXPRESS;integrated security=true;"))
{
SqlCommand cmd = new SqlCommand(cmdText, con);
cmd.CommandType = CommandType.Text;
try
{
con.Open();
cmd.ExecuteNonQuery();
con.ChangeDatabase("master");
con.Close();
return true;
}
catch (Exception exp)
{
if (con.State != ConnectionState.Closed)
{
con.ChangeDatabase("master");
con.Close();
}
MessageBox.Show(exp.Message);
return false;
}
}
}
و اما نحوه استفاده!
Backup:
//DataBaseName: نام پایگاه داده
//FilePath: مسیر ذخیره فایل مثلاً E:\\File.bak
ExecuteQuery("USE master backup database " + DataBaseName + " to disk = '" + FilePath + "'");
Restore:
//DataBaseName: نام پایگاه داده
//FilePath: مسیر فایل مثلاً E:\\File.bak
ExecuteQuery("USE master RESTORE DATABASE " + DataBaseName +
" FROM DISK = '" + FilePath + "' WITH REPLACE");
Attach:
//DataBaseName: نام پایگاه داده
//DirectoryPath: فولدر حاوی فایلهای پایگاه داده
// *.MDF, *.LDF
//مثلاً E:\\New Folder
ExecuteQuery("sp_attach_db '" + DataBaseName + "' , " +
"'" + DirectoryPath + "\\" + DataBaseName + "_Data.mdf' , " +
"'" + DirectoryPath + "\\" + DataBaseName + "_Log.ldf'");
Dettach:
//DataBaseName: نام پایگاه داده
ExecuteQuery("use master sp_detach_db '" + DataBaseName + "'");