سلام
توابع اتچ ودیتچ
private string Error { get; set; } = "No Error";
public string Attach(string path, string databaseName)
{
path = path + @"\";
try
{
if (Directory.Exists(path))
{
GetValue(path , databaseName);
}
else if (!Directory.Exists(path))
{
Error = "DirectoryNotFound";
}
}
catch (DirectoryNotFoundException exception )
{
return Error = exception.Message;
}
return Error;
}
private void GetValue(string path, string databaseName)
{
databaseName = databaseName.Trim();
_str = "USE [master]" + Environment.NewLine + "CREATE DATABASE[" + databaseName + "]" +
Environment.NewLine +
" ON" + Environment.NewLine + " (FILENAME = N'" +
path + "\\" + databaseName + ".mdf" + "')," + Environment.NewLine + "(FILENAME = N'" + path +
"\\" +
databaseName + "_log.ldf' )" + Environment.NewLine + "FOR ATTACH";
_cnn = new SqlConnection(@"Server=.;Integrated security=SSPI;database=master");
_cmd = new SqlCommand(_str, _cnn);
try
{
_cnn.Open();
_cmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
Error = ex.Message;
}
finally
{
if (_cnn.State == ConnectionState.Open)
{
_cnn.Close();
}
}
}
public string Detach(string databaseName)
{
databaseName = databaseName.Trim();
_str = "USE [master]" + Environment.NewLine + "EXEC master.dbo.sp_detach_db @dbname = N'" + databaseName +
"'";
_cnn = new SqlConnection(@"Server=.;Integrated security=SSPI;database=master");
_cmd = new SqlCommand(_str, _cnn);
try
{
_cnn.Open();
_cmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
Error = ex.Message;
}
finally
{
if (_cnn.State == ConnectionState.Open)
{
_cnn.Close();
}
}
return Error;
}
مثال
کاستومر دیتابیس است
Attach("D:\\","customer")
Detach("customer")