private static void DropDatabase(DatabaseSetupInfo setupInfo)
        {
            if (!string.IsNullOrEmpty(setupInfo.DatabaseName) && setupInfo.DatabaseExists())
            {
                using (SqlConnection adminConnection = new SqlConnection(setupInfo.CreateConnectionString(true, false)))
                {
                    adminConnection.Open();
                    using (SqlCommand selectCommand = new SqlCommand("SELECT spid from sys.sysprocesses WHERE dbid in (SELECT database_id FROM sys.databases WHERE name=@Name)", adminConnection))
                    {
                        selectCommand.Parameters.Add("@Name", System.Data.SqlDbType.VarChar).Value = setupInfo.DatabaseName;
                        DataTable      processIdsTable   = new DataTable();
                        SqlDataAdapter processIdsAdapter = new SqlDataAdapter(selectCommand);
                        processIdsAdapter.Fill(processIdsTable);

                        using (SqlCommand killCommand = new SqlCommand("", adminConnection))
                        {
                            foreach (DataRow dRow in processIdsTable.Rows)
                            {
                                killCommand.CommandText += string.Format("KILL {0};\r\n", dRow[0]);
                            }
                            killCommand.CommandText += string.Format("DROP DATABASE [{0}]", setupInfo.DatabaseName);
                            killCommand.ExecuteNonQuery();
                        }
                    }
                }
            }
        }
 private static bool CreateDatabase(DatabaseSetupInfo setupInfo, string createDatabaseObjectsSql, KeyValuePair <string, string>[] lookupDataArray)
 {
     if (!setupInfo.DatabaseExists())
     {
         using (SqlConnection adminConnection = new SqlConnection(setupInfo.CreateConnectionString(true, false)))
         {
             adminConnection.Open();
             using (SqlCommand createCommand = new SqlCommand(string.Format("CREATE DATABASE [{0}]", setupInfo.DatabaseName), adminConnection))
             {
                 createCommand.ExecuteNonQuery();
             }
         }
         return(true);
     }
     else
     {
         return(false);
     }
 }