a junior here need some help.
When trying to update the staff, the old image needs to be deleted from the file path after the newly added image. I managed to delete it, but the new image is not created, so the staff cannot be accessed. What am I doing wrong?
It’s a WFA project using C#
<code>private void btnUpdate_Click(object sender, EventArgs e)
{
if (lstEmployeeList.SelectedItems.Count>0)
{
if (pbEmployeeImage.Tag != null && !string.IsNullOrEmpty(selectedEmployee.EmployeePicture))
{
string oldImagePath = Path.Combine(Application.StartupPath, "Images", selectedEmployee.EmployeePicture);
if (File.Exists(oldImagePath))
{
pbEmployeeImage.Image?.Dispose();
pbEmployeeImage.Image = null;
GC.Collect();
GC.WaitForPendingFinalizers();
File.Delete(oldImagePath);
}
}
selectedEmployee = FillEmployee(selectedEmployee);
db.SaveChanges();
ListViewFill();
Methods.Clear(this.Controls);
``
}
else
{
MessageBox.Show("Please select an Employee to Update");
}
}
</code>
<code>private void btnUpdate_Click(object sender, EventArgs e)
{
if (lstEmployeeList.SelectedItems.Count>0)
{
if (pbEmployeeImage.Tag != null && !string.IsNullOrEmpty(selectedEmployee.EmployeePicture))
{
string oldImagePath = Path.Combine(Application.StartupPath, "Images", selectedEmployee.EmployeePicture);
if (File.Exists(oldImagePath))
{
pbEmployeeImage.Image?.Dispose();
pbEmployeeImage.Image = null;
GC.Collect();
GC.WaitForPendingFinalizers();
File.Delete(oldImagePath);
}
}
selectedEmployee = FillEmployee(selectedEmployee);
db.SaveChanges();
ListViewFill();
Methods.Clear(this.Controls);
``
}
else
{
MessageBox.Show("Please select an Employee to Update");
}
}
</code>
private void btnUpdate_Click(object sender, EventArgs e)
{
if (lstEmployeeList.SelectedItems.Count>0)
{
if (pbEmployeeImage.Tag != null && !string.IsNullOrEmpty(selectedEmployee.EmployeePicture))
{
string oldImagePath = Path.Combine(Application.StartupPath, "Images", selectedEmployee.EmployeePicture);
if (File.Exists(oldImagePath))
{
pbEmployeeImage.Image?.Dispose();
pbEmployeeImage.Image = null;
GC.Collect();
GC.WaitForPendingFinalizers();
File.Delete(oldImagePath);
}
}
selectedEmployee = FillEmployee(selectedEmployee);
db.SaveChanges();
ListViewFill();
Methods.Clear(this.Controls);
``
}
else
{
MessageBox.Show("Please select an Employee to Update");
}
}
This is My FillEmployee Method
<code>private Personel FillEmployee (Personel p)
{
p.Ad = txtAd.Text;
p.Soyad = txtSoyad.Text;
p.TCKN = txtTC.Text;
p.DogumTarihi = dtDogumTarihi.Value;
p.Unvan = cmbUnvan.Text == "" ? Unvan.Belirtilmedi : (Unvan)cmbUnvan.SelectedValue;
p.IseGirisTarihi = dtiseGiris.Value;
p.Email = txtEmail.Text;
p.Adres =txtAdres.Text;
p.TelefonNo = txtTel.Text;
if (pbPersonelResmi.Tag != null)
{
p.EmployeeImage = Guid.NewGuid() + pbEmployeeImage.Tag.ToString();
pbEmployeeImage.Image.Save(Application.StartupPath + "Images/" + p.EmployeeImage);
}
return p;
</code>
<code>private Personel FillEmployee (Personel p)
{
p.Ad = txtAd.Text;
p.Soyad = txtSoyad.Text;
p.TCKN = txtTC.Text;
p.DogumTarihi = dtDogumTarihi.Value;
p.Unvan = cmbUnvan.Text == "" ? Unvan.Belirtilmedi : (Unvan)cmbUnvan.SelectedValue;
p.IseGirisTarihi = dtiseGiris.Value;
p.Email = txtEmail.Text;
p.Adres =txtAdres.Text;
p.TelefonNo = txtTel.Text;
if (pbPersonelResmi.Tag != null)
{
p.EmployeeImage = Guid.NewGuid() + pbEmployeeImage.Tag.ToString();
pbEmployeeImage.Image.Save(Application.StartupPath + "Images/" + p.EmployeeImage);
}
return p;
</code>
private Personel FillEmployee (Personel p)
{
p.Ad = txtAd.Text;
p.Soyad = txtSoyad.Text;
p.TCKN = txtTC.Text;
p.DogumTarihi = dtDogumTarihi.Value;
p.Unvan = cmbUnvan.Text == "" ? Unvan.Belirtilmedi : (Unvan)cmbUnvan.SelectedValue;
p.IseGirisTarihi = dtiseGiris.Value;
p.Email = txtEmail.Text;
p.Adres =txtAdres.Text;
p.TelefonNo = txtTel.Text;
if (pbPersonelResmi.Tag != null)
{
p.EmployeeImage = Guid.NewGuid() + pbEmployeeImage.Tag.ToString();
pbEmployeeImage.Image.Save(Application.StartupPath + "Images/" + p.EmployeeImage);
}
return p;
Actually I have no idea what to try now
New contributor
Onur Anatça is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.