برای اينکه بفهمی بانک اطلاعاتی هست يا نيست :
SqlConnection Scon =
new SqlConnection("...");
SqlCommand cmd_DbExist = new SqlCommand("select [name] from master.dbo.sysdatabases where [name]=@DbName ", Scon);
پارامتر رو برای دستور تعريف کن و نام بانک رو بهش پاس کن.ExecuteScalar() رو فراخوانی کن اگر نتيجه ای برگرداند که بانک وجود داره اگر نه که attach نيست.
در صورتی که متد Connect فراخوانی شه و خطا برگرده (قبل از چک کردن بانک) ميتونه مربوط به فعال نبودن SQL Server باشه.
اگر بانک مورد نظر موجود نبودکه فرمی رو باز کن کن که تنظيمات ارتباط با بانک رو از ورودی بگيره (مثل نام کاربری و رمز عبور و ...) - نام بانک رو ثابت فرض کنی تو کد بهتره- و بعد رو رويداد کليک دکمه اون فرم بانک رو attach کن.
SqlCommand cmd_Attach =
new SqlCommand("[master].[dbo].[sp_attach_single_file_db]", Scon);
cmd_Attach.Parameters.AddWithValue("@dbname", DbName);
cmd_Attach.Parameters.AddWithValue("@physname", FileName_MDF);