Загрузка Picturebox в C # с помощью Oracle Blob - PullRequest
0 голосов
/ 09 декабря 2011

У меня есть очень простая форма с одним графическим блоком, одним текстовым полем и одной кнопкой. Я создал таблицу в Oracle для хранения большого двоичного объекта, Я хочу загрузить это изображение в поле для картинок в c # после нажатия кнопки . Вот что я написал до сих пор.

My picturebox name = "picBoxXray". Имя моего текстового поля = "txtXrayId". Имя моей кнопки = "btnGetXrayID". И имя моей таблицы "XRay".

    private void btnGetXrayID_Click(object sender, EventArgs e)
    {


        if (txtXrayId.Text == "")
        {
            MessageBox.Show("XrayID be entered");
        }

        if (picBoxXray.Image != null)        
        { 
            picBoxXray.Image.Dispose();         
        }

        string connectionString = GetConnectionString();
        using (OracleConnection connection = new OracleConnection())
        {
            connection.ConnectionString = connectionString;
            connection.Open();
            Console.WriteLine("State: {0}", connection.State);
            Console.WriteLine("ConnectionString: {0}",
                              connection.ConnectionString);

            OracleCommand command = connection.CreateCommand();

            string sql = "SELECT * FROM XRay WHERE XrayID =" + txtXrayId.Text;

            OracleCommand cmd = new OracleCommand(sql, connection);
            OracleDataReader dr = cmd.ExecuteReader();
            cmd.CommandType = CommandType.Text;
            dr = cmd.ExecuteReader();

            while (dr.Read())
            {
                // Obtain the image
                //Need code

            }

            command.CommandText = sql;
            command.ExecuteNonQuery();
            connection.Close();

    }

Любая помощь будет высоко оценена, Спасибо

1 Ответ

0 голосов
/ 09 декабря 2011

Вы должны создать изображение из потока, например:

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

Затем назначьте изображение в графическом окне.byteArray in - это большой двоичный объект, который вы читаете из БД.конечно, изображение должно быть сохранено в известном формате (например, png / jpeg)

...