2011-06-23 72 views

回答

3

我会将图像转换为一个字节[]和。然后将字节[]转换回图像。

public static byte[] ImageToByte(Image img) 
{ 
    ImageConverter converter = new ImageConverter(); 
    return (byte[])converter.ConvertTo(img, typeof(byte[])); 
} 

public static Image ImageFromByte(byte[] image) 
{ 
    ImageConverter ic = new ImageConverter(); 
    Image img = (Image)ic.ConvertFrom(image); 
    return img; 
} 
+0

是的,先生。但我不知道如何转换和恢复。 – Saya

+0

我添加了一个示例。抱歉。也使用System.Drawing命名空间。 –

+0

谢谢你帮助我,我会测试它。 – Saya

0
using (var connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\BlankDatabase.mdb")) 
{ 
    connection.Open(); 

    // Create table 
    using (var command = connection.CreateCommand()) 
    { 
     command.CommandText = @" 
      CREATE TABLE FileTable (
       FileName VARCHAR(255), 
       File IMAGE) 
      "; 
     command.ExecuteNonQuery(); 
    } 

    var imageContent = File.ReadAllBytes(@"C:\logo.png"); 

    // upload image to the table 
    using (var command = connection.CreateCommand()) 
    { 
     command.CommandText = @" 
      INSERT INTO FileTable (FileName, File) 
      VALUES (@FileName, @File) 
      "; 
     command.Parameters.AddWithValue("@FileName", "Logo"); 
     command.Parameters.AddWithValue("@File", imageContent); 
     command.ExecuteNonQuery(); 
    } 

    // retreive image from the table 
    using (var command = connection.CreateCommand()) 
    { 
     command.CommandText = @" 
      SELECT File 
      FROM FileTable 
      WHERE FileName = 'Logo' 
      "; 
     var readImageContent = (byte[])command.ExecuteScalar(); 
     File.WriteAllBytes(@"C:\logo1.png", readImageContent); 
    } 

    // alter image from the table 
    using (var command = connection.CreateCommand()) 
    { 
     command.CommandText = @" 
      UPDATE FileTable 
      SET File = @File 
      WHERE FileName = 'Logo' 
      "; 
     command.Parameters.AddWithValue("@File", imageContent); 
     command.ExecuteNonQuery(); 
    } 

    // delete image from the table 
    using (var command = connection.CreateCommand()) 
    { 
     command.CommandText = @" 
      DELETE FROM FileTable 
      WHERE FileName = 'Logo' 
      "; 
     command.ExecuteNonQuery(); 
    } 
} 

在此代码中BlankDatabase.mdb是一个空的MS Access数据库文件。

+0

谢谢你回答我。 – Saya

+0

@Saya - 让我知道这是否回答你的问题。 –

+0

是的,先生。我会测试它并返回。 – Saya