2009-06-17 3 views
1

私はcustomerPictureカラムに、CUSTOMERテーブルのデータ型としてImageを持つバイナリファイルを持っています。LINQ to SQLを使用してGridview ASP.NETでバインドするには、MS SQL Serverからイメージを取得する方法?

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 

は、それから、今、私はSQLにLINQを使用してASP.NETでのGridViewにバインドするために、このバイナリファイルを取得したいが、私は方法がわかりません。ソリューションに到達するための方法をいくつか教えてください。

答えて

0

はこれを試してみてください:

dim ms as new MemoryStream 
ms.Write(fileBinary.ToArray(),0,fileBinary.Length) 

dim img as Image 
img = Image.FromStream(ms) 

newCus.customerPicture = img 
2

データベースから画像をretriveするのHttpHandlerを使用することができます。

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

DataGridにItemTemplateとしてイメージがある場合は、

DataGridのItemDataBoundイベントでは、画像を表示するために "HttpHandler"を呼び出します。以下のコードでは、画像コントロールを見つけて、imageUrlをHttpHandlerファイルパスとして取得しています。 HttpHandlerFile

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

とのHttpHandlerファイル内の画像をretriveし、それを表示するためにLINQのを使用しています。

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

int photoId = -1; 
    //Check the query string. 
    if (context.Request.QueryString["PhotoId"] != null && context.Request.QueryString["PhotoId"] != "") 
    { 
     photoId = Convert.ToInt32(context.Request.QueryString["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); 
    } 
} 

これのHttpHandlerファイルはデータグリッドでimageURLににマッピングされているとして、あなたは、データグリッドに表示された画像を見ることができます。

関連する問題