public bool login(string id, string password, ref SmileUser p)
        {
            string query = "SELECT * FROM smileuser WHERE LCASE(userid) = LCASE('"+id+"')";
            string dbpassword  = null;
            bool isAdmin = false;
            if (this.OpenConnection() == true)
            {
                IDbCommand cmd = getSqlCommand(query, connection);
                //cmd.Parameters.Add(new MySqlParameter("userid", id));

                IDataReader dataReader = cmd.ExecuteReader();
                while (dataReader.Read())
                {
                    dbpassword = GetStringSafe(dataReader, "password");
                    isAdmin = dataReader.GetBoolean(dataReader.GetOrdinal("admin"));
                }
                dataReader.Close();
                this.CloseConnection();
            }

            if (dbpassword != null)
            {
                //crosscheck the password using MD5
                if (CalculateMD5Hash(password).Equals(dbpassword))
                {
                    p = new SmileUser();
                    p.UserId = id;
                    p.Dentist = findDentistByUserId(p.UserId);
                    p.Admin = isAdmin;
                    return true;
                }
            }

            return false ;
        }
        public bool InsertUser(SmileUser p)
        {
            string tableName = "smileuser";
            string columns = "(userid, password, created,createdBy)";
            string values = "('" + p.UserId + "','" + p.Password+ "','" + DateTime.Now.ToString(Smile.LONG_DATE_FORMAT) + "','"+User+"')";
            string query = "INSERT INTO " + tableName + " " + columns + " values " + values + " ;";

            if (this.OpenConnection() == true)
            {
                IDbCommand cmd = getSqlCommand(query, connection);
                cmd.ExecuteNonQuery();
                this.CloseConnection();
                return true;
            }

            return false;
        }
        private SmileUser toSmileUser(IDataReader dataReader)
        {
            SmileUser p = new SmileUser();

            p.UserId = dataReader.GetString(dataReader.GetOrdinal("userid"));
            p.Dentist = findDentistByUserId(dataReader.GetString(dataReader.GetOrdinal("userid")));

            return p;
        }
        private void btnAddUser_Click(object sender, RoutedEventArgs e)
        {
            Dentist d = cbDentist.SelectedItem as Dentist;
            if (d == null)
            {
                MessageBox.Show("Please select a Dentist first.");
                return;
            }
            if (txtPasswd.Text.Equals(string.Empty))
            {
                MessageBox.Show("Type your password to updated.");
                return;
            }
            if (!txtPasswd.Text.Equals(txtConfirm.Text))
            {
                MessageBox.Show("Password didn't match. Please try again.");
                return;
            }

            SmileUser u = new SmileUser();
            u.UserId = d.UserId;
            u.Password = DB.CalculateMD5Hash(txtConfirm.Text);
            DB.InsertUser(u);            
        }