示例#1
0
        public bool ChangeDB(string Username, string Name, string Surname, string Password, string Email, string Country)
        {
            var hashed_password = SecurePasswordHasher.Hash(Password);

            var folder = AppDomain.CurrentDomain.BaseDirectory.Replace("\\bin\\Debug", "");

            string sqlConnectionString = "Server=(localdb)\\MSSQLLocalDB;AttachDbFilename=" + folder + "UsersDB.mdf" +
                                         ";Trusted_Connection=True;";

            using (SqlConnection connection = new SqlConnection(sqlConnectionString))
                using (SqlCommand command = connection.CreateCommand())
                {
                    command.CommandText = "Update Users Set Name=@name, Surname = @surname, Password = @pw,  Email = @mail, Country = @country where Username = @user";
                    command.Parameters.AddWithValue("@name", Name);
                    command.Parameters.AddWithValue("@surname", Surname);
                    command.Parameters.AddWithValue("@pw", hashed_password);
                    command.Parameters.AddWithValue("@mail", Email);
                    command.Parameters.AddWithValue("@country", Country);
                    command.Parameters.AddWithValue("@user", Username);


                    connection.Open();

                    int resultado = 0;
                    try
                    {
                        resultado = command.ExecuteNonQuery();
                    }
                    catch (System.Data.SqlClient.SqlException)
                    {
                        Error_Change?.Invoke("Error: Error changing profile!");

                        connection.Close();
                    }

                    connection.Close();

                    if (resultado == 1) // se o resultado for 1, significa que adicionou correctamente o utilizador
                    {
                        return(true);
                    }
                    return(false);
                }
        }
示例#2
0
        public bool AddUserDB(string str1, string str2, string str3, string str4,
                              string str5, string str7, string str9)
        {
            // str1 --> Username
            // str2 --> First Name
            // str3 --> Last Name
            // str4 --> Profile Pic Path
            // str5 --> Password
            // str7 --> Email
            // str9 --> Country

            var hashed_password = SecurePasswordHasher.Hash(str5);

            //Obtem o caminho fisico para a pasta do código da aplicação
            //para poder reutilizar a base de dados, caso contrário, ele está sempre a substituir
            var folder = AppDomain.CurrentDomain.BaseDirectory.Replace("\\bin\\Debug", "");

            //construir a ligação ao servidor SQL Server local com o caminho do ficheiro
            string sqlConnection = "Server=(localdb)\\MSSQLLocalDB;AttachDbFilename=" + folder + "UsersDB.mdf" +
                                   ";Trusted_Connection=True;";

            //inicializar a ligação ao servidor
            SqlConnection server = new SqlConnection(sqlConnection);

            //abrir a ligação
            server.Open();

            //obter o nome do ficheiro
            string filename = System.IO.Path.GetFileName(str4);

            //construir a string SQL de insert nas tabelas
            // para aplicações reais devem usar SQL parameters e não string directas
            string comando = String.Format("INSERT INTO Users" +
                                           "(Username, Name, Surname,Password, Photo, Email, Country) values " +
                                           "( '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}')",
                                           str1, str2, str3, hashed_password, filename, str7, str9);

            //construir o comando SQL com a ligação ao servidor
            SqlCommand command = new SqlCommand(comando, server);

            //executar o comando sem expectativa de receber resultados (usar para INSERTS, UPDATES, DELETE)
            //o metodo devolve o numero de linhas modificadas pela query enviada
            int resultado = 0;

            try
            {
                resultado = command.ExecuteNonQuery();
            }
            catch (System.Data.SqlClient.SqlException)
            {
                Error_SignUp?.Invoke("Error: This username already exists!");
            }

            //fechar sempre a ligação quando deixa de ser necessária
            server.Close();

            if (resultado == 1)  // se o resultado for 1, significa que adicionou correctamente o utilizador
            {
                //guardar copia do ficheiro na pasta fotos
                System.IO.File.Copy(str4,
                                    "Fotos\\" + filename, true);
                return(true);
            }
            return(false);
        }