2016-04-11 2 views
0

Я пытаюсь сохранить мои изображения, расположенные в моем datagrid, с ColumnType «DataGridViewImageColumn», проходящим через класс и запрос класса, который у меня есть.Сохранение изображения из DataGridViewImage в базу данных

Вот мой код.

// Class name 
public byte[] Image; 

// Getting the value image from datagridview 
int i; 
for(...){ 
byte[] image = (byte[])dgv.Rows[i].Cells[7].Value; 
MemoryStream ms = new MemoryStream(image); 
belsalesquote.Image = Image.FromStream(ms); 
} 

Список ошибок говорит «Не удается неявно преобразовать тип„System.Drawing.Image“до 'байт []

Мой тип столбца в моей базе данных равно„образу“.

ответ

3

вы наклоняете прямое конвертировать изображение в байты

//byte[] image = (byte[])dgv.Rows[i].Cells[7].Value; 

    Image image = (Image)dgv.Rows[i].Cells[7].Value; 

    using (MemoryStream m = new MemoryStream()) 
    { 
     image.Save(m, image.RawFormat); 
     byte[] imageBytes = m.ToArray(); 

     // Convert byte[] to Base64 String 
     string base64String = Convert.ToBase64String(imageBytes); 
    } 

Таким образом, вы можете сохранить [base64String] к вашей БД

+0

что вы подразумеваете под [base64String]. Я изменю свой тип столбца с изображения на [base64String], это то, что вы имеете в виду? :) –

+0

строка base64String = Convert.ToBase64String (imageBytes); его переменная, вы можете назвать ее чем угодно , поэтому вы можете хранить в любом виде NVARCHAR в базе данных –

Смежные вопросы