Comment récupérer une image à partir de MS SQL Server pour lier dans Gridview ASP.NET en utilisant LINQ to SQL?

J'ai un file binary qui stocke dans la colonne customerPicture qui a Image comme un type de données dans la table CUSTOMERs.

J'ai enregistré une image en utilisant cette ligne de code dans LINQ to SQL.

 Dim db = new MyCompanyDataContext Dim newCus = new CUSTOMERs Dim filebyte As Byte() = fileUploader.FileBytes Dim fileBinary As New System.Data.Linq.Binary(filebyte) newCus.customerPicture = fileBinary 

Alors maintenant je veux récupérer ce file binary à lier dans le gridview dans ASP.NET en utilisant LINQ to SQL, mais je ne sais pas comment. Pouvez-vous s'il vous plaît me montrer quelques façons d'atteindre la solution?

vous pouvez utiliser Httphandler pour récupérer les images de la database.

  <ItemTemplate> <asp:Image ID="imgPhoto" runat="server"/> </ItemTemplate> 

Si vous avez une image en tant que ItemTemplate dans la grid de données.

Dans l'événement ItemDataBound de l'appel de données, appelez le "HttpHandler" pour afficher l'image. Dans le code ci-dessous, je trouve le contrôle de l'image et assigne l'imageUrl comme path de file HttpHandler. Je passe également l'id comme string de requête au HttpHandlerFile.

  System.Web.UI.WebControls.Image photoImage = (System.Web.UI.WebControls.Image)e.Item.FindControl("imgPhoto"); photoImage.ImageUrl = "ImageHandler.ashx?PhotoID=" + id.ToSsortingng(); 

Et dans le file HttpHandler, utilisez Linq pour récupérer l'image et l'afficher.

public void ProcessRequest (HttpContext context)
{
context.Response.ContentType = "image/jpeg";

  int photoId = -1; //Check the query ssortingng. if (context.Request.QuerySsortingng["PhotoId"] != null && context.Request.QuerySsortingng["PhotoId"] != "") { photoId = Convert.ToInt32(context.Request.QuerySsortingng["PhotoID"]); } if (photoId != -1) { MovieDataContext db = new MovieDataContext(); //Get the movie record based on the ID MovieTable movie = db.MovieTables.First(m => m.ID == photoId); System.Data.Linq.Binary fileBinary = movie.Photo; byte[] fileByte = fileBinary.ToArray(); //displays the Image. context.Response.BinaryWrite(fileByte); } } 

Comme ce file HttpHandler est mappé à l'imageURL dans la grid de données, vous pouvez voir les images affichées dans le DataGrid.

Essaye ça:

 dim ms as new MemoryStream ms.Write(fileBinary.ToArray(),0,fileBinary.Length) dim img as Image img = Image.FromStream(ms) newCus.customerPicture = img