توی این تابع نام سرور و نام دیتابیس بامقادیر ثابت .\\SQLExpress و Your_Database_Name تعریف شدن اما فولدر حاوی فایل های دیتابیس، به صورت پارامتری دریافت شده.
شما کد رو یک دور بخون بعد هرجور خواستی توی تابع، تغییرات ایجاد کن.
private void Attach(string DatabaseFolder)
{
string _DatabaseName = "Your_Database_Name", _Server = ".\\SQLExpress";
string MDFPath = Path.Combine(DatabaseFolder, _DatabaseName + ".mdf");
string LDFPath = Path.Combine(DatabaseFolder, _DatabaseName + "_log.ldf");
SqlConnection cn = null;
try
{
cn = new SqlConnection(string.Format(@"Server = {0}; Integrated security = SSPI; database = master", _Server));
cn.Open();
using (SqlCommand cmd = new SqlCommand(string.Format("CREATE DATABASE [{0}] ON (FILENAME = '{1}'), (FILENAME = '{2}') FOR ATTACH", _DatabaseName, MDFPath, LDFPath), cn))
if (cn.State == ConnectionState.Open) cmd.ExecuteNonQuery();
}
catch
{
}
finally
{
if (cn != null) cn.Dispose();
}
}