Je souhaite écrire un répertoire en C# avec une architecture à trois couches, mais je n'en ai pas assez de cette architecture. Nous avons un DataGridView qui affiche l'image de chaque personne dans la zone d'image lorsque nous cliquons sur chacune des lignes. Mais ça ne marche pas. Je ne sais pas où est le problème. Guidez-moi s'il-vous-plaît. J'ai récemment pris connaissance de cette architecture.Affichage d'une photo de contact dans une architecture à 3 couches dans une zone d'image C#
Code DAL:
public void GetBinaryImage(int Id)
{
context.People.Select(a => new { a.Id, a.PersonImage }).Where(a => a.Id == Id) ;
}
Code BLL
public void GrtBinaryImage(int person_Id)
{
Myperson.GetBinaryImage(person_Id);
}
code PL
private void dataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView.SelectedRows.Count > 0)
{
int Id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
showpictureBox.Image = bytearytoimage(person.GrtBinaryImage(Id));
}
}
private Image bytearytoimage(object v)
{
MemoryStream stream = new MemoryStream(v);
return Image.FromStream(stream);
}
je reçois l'erreur:
"Argument 1: cannot convert from 'void' to object".
Je sais que j'ai écrit une erreur, s'il vous plaît me guider.
Qu'est-ce qui ne fonctionne pas? – musefan
Je reçois l'erreur "Argument 1: impossible de convertir" void "en objet". –
votre méthode GrtBinaryImage de BLL ne renvoie aucune valeur je suppose qu'elle doit retourner un objet qui est requis dans bytearytoimage s'il vous plaît mettre à jour votre méthode BLL –