2009-06-17 5 views
1

나는 CUSTOMERs 테이블의 데이터 유형으로 Image를 가진 customerPicture 컬럼을 저장하는 바이너리 파일을 가지고있다.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

가 데이터베이스에서 이미지를 가져 오지하는 HttpHandler를 사용할 수 있습니다.

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

이미지가 DataGrid에 ItemTemplate 인 경우.

DataGrid의 ItemDataBound 이벤트에서 "HttpHandler"를 호출하여 이미지를 표시합니다. 아래 코드에서 이미지 컨트롤을 찾고 HttpHandler 파일 경로로 imageUrl을 지정합니다. 또한 ID를 쿼리 문자열로 전달합니다. HttpHandlerFile.

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

그리고 HttpHandler를 파일에

는 이미지를 가져 오지 및 표시 할 Linq를 사용합니다. 이 HttpHandler를 파일이 데이터 그리드에서 이미지 URL에 매핑 될 때

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

, 당신은 데이터 그리드에 표시되는 이미지를 볼 수 있습니다.

관련 문제