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); } }
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); }