protected void DatabaseAccessGrid_Databound(object sender, DataGridItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
            {
                SqlDatabase database = databases[(string)DatabaseAccessGrid.DataKeys[e.Item.ItemIndex]];

                if (sqlLogin.GetUserName(database.Name) != null)
                {
                    CheckBox cb = e.Item.FindControl("DatabaseAccess")  as CheckBox;
                    if (cb != null)
                    {
                        cb.Checked = true;
                    }
                }
            }
        }
        private bool Save()
        {
            SqlServer server = SqlServer.CurrentServer;
            try
            {
                server.Connect();
            }
            catch (System.Exception ex)
            {
                //Response.Redirect("Error.aspx?errorPassCode=" + 2002);
                Response.Redirect(String.Format("error.aspx?errormsg={0}&stacktrace={1}", Server.UrlEncode(ex.Message), Server.UrlEncode(ex.StackTrace)));
            }

            try
            {
                // Save Login settings
                sqlLogin = server.Logins[Request["Login"]];

                if (SecurityAccess.Enabled)
                {
                    sqlLogin.DenyNTLogin = SecurityAccess.SelectedValue == "Deny" ? true : false;
                }

                sqlLogin.Database = DefaultDatabase.SelectedValue;
                sqlLogin.Language = DefaultLanguage.SelectedValue;

                // Save server roles
                foreach (ListItem item in ServerRoles.Items)
                {
                    if (sqlLogin.IsMember(item.Value) && !item.Selected)
                    {
                        server.Roles[item.Value].DropMember(sqlLogin.Name);
                    }
                    else if (!sqlLogin.IsMember(item.Value) && item.Selected)
                    {
                        server.Roles[item.Value].AddMember(sqlLogin.Name);
                    }
                }

                databases = server.Databases;

                // Save database access
                foreach (DataGridItem item in DatabaseAccessGrid.Items)
                {
                    SqlDatabase database = databases[(string)DatabaseAccessGrid.DataKeys[item.ItemIndex]];
                    CheckBox cb = item.FindControl("DatabaseAccess") as CheckBox;
                    if (database != null && cb != null)
                    {
                        string dbName = sqlLogin.GetUserName(database.Name);
                        if (dbName != null && !cb.Checked)
                        {
                            database.Users[dbName].Remove();
                        }
                        else if (dbName == null && cb.Checked)
                        {
                            database.Users.Add(sqlLogin.Name, sqlLogin.Name);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorMessage.Text = ex.Message;
                return false;
            }
            finally
            {
                server.Disconnect();
            }
            return true;
        }
        private bool Save()
        {
            SqlServer server = SqlServer.CurrentServer;

            server.Connect();

            try
            {
                // Save Login settings
                sqlLogin = server.Logins[Request["Login"]];

                if (SecurityAccess.Enabled)
                {
                    sqlLogin.DenyNTLogin = SecurityAccess.SelectedValue == "Deny"?true:false;
                }

                sqlLogin.Database = DefaultDatabase.SelectedValue;
                sqlLogin.Language = DefaultLanguage.SelectedValue;

                // Save server roles
                foreach (ListItem item in ServerRoles.Items)
                {
                    if (sqlLogin.IsMember(item.Value) && !item.Selected)
                    {
                        server.Roles[item.Value].DropMember(sqlLogin.Name);
                    }
                    else if (!sqlLogin.IsMember(item.Value) && item.Selected)
                    {
                        server.Roles[item.Value].AddMember(sqlLogin.Name);
                    }
                }

                databases = server.Databases;

                // Save database access
                foreach (DataGridItem item in DatabaseAccessGrid.Items)
                {
                    SqlDatabase database = databases[(string)DatabaseAccessGrid.DataKeys[item.ItemIndex]];
                    CheckBox    cb       = item.FindControl("DatabaseAccess") as CheckBox;
                    if (database != null && cb != null)
                    {
                        string dbName = sqlLogin.GetUserName(database.Name);
                        if (dbName != null && !cb.Checked)
                        {
                            database.Users[dbName].Remove();
                        }
                        else if (dbName == null && cb.Checked)
                        {
                            database.Users.Add(sqlLogin.Name, sqlLogin.Name);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorMessage.Text = ex.Message;
                return(false);
            }
            finally
            {
                server.Disconnect();
            }
            return(true);
        }