Преобразование данных BLOB в base64 и затем отображение

Я пытаюсь преобразовать данные BLOB, которые поступают из базы данных MySQL в Base64, а затем отображать это в jpg-изображении. Здесь используется код am:

using (MySql.Data.MySqlClient.MySqlConnection connection = new MySql.Data.MySqlClient.MySqlConnection("S;Port=P;Database=DB;Uid=U;Pwd=P"))
 {
 connection.Open();
 MySql.Data.MySqlClient.MySqlCommand cmd = connection.CreateCommand();
 cmd.CommandText = "SELECT blobValue FROM Table WHERE blob_id = '333'";

 MySql.Data.MySqlClient.MySqlDataReader datr = cmd.ExecuteReader();
 if (datr.Read())
 {


 byte[] xx = (byte[])datr.GetValue(0);

 string base64String = Convert.ToBase64String(xx, 0, xx.Length);
 Image1.ImageUrl = "data:image/jpg;base64," + base64String;

 }

Я думаю, у меня нет проблем с кодом, но при запуске кода я получаю пустое изображение, вроде этого →

Пожалуйста, помогите.

1 ответ

Используйте следующий код.

public string BlobToStringConverter(OracleDbType.Blob blobObject){
 if (blobObject != null){
 return Encoding.UTF8.GetString((byte[])(blobObject));
 } else {
 return string.Empty; 
 }
}

licensed under cc by-sa 3.0 with attribution.