2013-03-13 7 views
2

어떻게 데이터 테이블에 이미지를 추가 할 수 있습니까? 다음 코드,어떻게 데이터 테이블에 이미지를 추가 할 수 있습니까?

Image img = new Image(); 
img.ImageUrl = "~/images/xx.png"; 
dr = dt.NewRow(); 
dr[column] = imgdw; 

을 시도하지만있는 gridview 대신 이미지에 텍스트 System.Web.UI.WebControls.Image을 표시합니다.

+0

이미지를 얻으려면 해당 개체의 올바른 속성에 액세스해야합니다. – DarthVader

+0

이미지 개체 또는 이미지 경로가 있습니까? –

+0

답변을 수락합니다 ... – Max

답변

2

사용이 코드 :

DataTable table = new DataTable("ImageTable"); //Create a new DataTable instance. 

DataColumn column = new DataColumn("MyImage"); //Create the column. 
column.DataType = System.Type.GetType("System.Byte[]"); //Type byte[] to store image bytes. 
column.AllowDBNull = true; 
column.Caption = "My Image"; 

table.Columns.Add(column); //Add the column to the table. 

테이블에 새 행을 추가합니다 ([] 바이트 이미지)

DataRow row = table.NewRow(); 
row["MyImage"] = <Image byte array>; 
tables.Rows.Add(row); 

체크 아웃 다음 코드 프로젝트 링크 :

Code Project

6

이 코드를 사용해보십시오.

imageToByteArray
 DataTable dt = new DataTable(); 
     dt.Columns.Add("col1", typeof(byte[])); 
     Image img = Image.FromFile(@"physical path to the file"); 
     DataRow dr = dt.NewRow(); 
     dr["col1"] = imageToByteArray(img); 
     dt.Rows.Add(dr); 

public byte[] imageToByteArray(System.Drawing.Image imageIn) 
    { 
     MemoryStream ms = new MemoryStream(); 
     imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); 
     return ms.ToArray(); 
    } 

그래서 아이디어 즉, 나중에 당신이 그것을 다시 반입 할 수 있도록, [] 바이트 후를 저장하기 위해 변환하지 않고 직접 이미지를 저장하려고하지 않습니다이며, 을 사용하거나이 같은 그림 상자에 할당 :

pictureBox1.Image = byteArrayToImage((byte[])dt.Rows[0]["col1"]); 

byteArrayToImage은 다음과 같습니다

public Image byteArrayToImage(byte[] byteArrayIn) 
    { 
     MemoryStream ms = new MemoryStream(byteArrayIn); 
     Image returnImage = Image.FromStream(ms); 
     return returnImage; 
    } 
2

목적이 GridView 내에 이미지를 표시하는 것이라면 개인적으로 이미지 경로 인 DataTable 내에 실제 이미지를 저장하지 않을 것입니다. 이미지를 저장하면 DataTable이 불필요하게 팽창합니다. 물론 이것은 이미지가 FileSystem에 저장되고 DataBase에 저장되지 않은 경우에만 해당됩니다.

는 예컨대 TemplateField

을 사용의 GridView 내의 화상을 표시

dr = dt.NewRow(); 
dr[column] = "~/images/xx.png"; 

<asp:TemplateField> 
    <ItemTemplate>      
     <img src='<%#Eval("NameOfColumn")%>' /> 
    </ItemTemplate> 
</asp:TemplateField> 

원시 이미지를 저장하는 대신 데이터베이스에 이미지 경로를 저장하는 경우에도 효과적입니다.

관련 문제