C # - Как получить значение типа raw в Oracle - PullRequest
5 голосов
/ 15 апреля 2010

Как получить значение типа raw с помощью C #?

Ответы [ 2 ]

17 голосов
/ 17 апреля 2010

Поскольку вы не опубликовали ни одного кода, я не знаю, сколько вы знаете. Я предполагаю, что вы уже понимаете, как выполнить запрос и получить набор результатов, используя OracleDataReader.

Есть одна ошибка с колонками LONG и LONG RAW. Вы должны установить для свойства InitialLONGFetchSize вашего OracleCommand ненулевое значение.

Значение по умолчанию InitialLONGFetchSize равно нулю, что означает, что данные для столбцов LONG или LONG RAW не будут получены. Если вы установите его на -1, все данные будут получены. Возможно, вы не захотите делать это для больших значений. Если вы установите значение выше нуля, это будет количество байтов, которые будут извлечены и кэшированы.

Вы должны прочитать документацию для InitialLONGFetchSize, потому что есть некоторые другие детали, которые вам нужно знать.

1 голос
/ 03 августа 2016

Вот код для решения этой проблемы.

          Byte[] img;
        con.Open();
        OracleCommand command = new OracleCommand("Select Image as BLOBDATA FROM tbltestImage ", con);
        command.InitialLONGFetchSize = -1;
        OracleDataReader rdr = command.ExecuteReader();

        DataTable dt = new DataTable();
        dt.Load(rdr);
        con.Close();
         if (dt.Rows.Count > 0)
        {

            if (dt.Rows[0]["BLOBDATA"].ToString() != "")
            {

                img = (Byte[])dt.Rows[0]["BLOBDATA"];


                MemoryStream ms = new MemoryStream(img);

                Bitmap bitmap = new Bitmap(ms);

                pictureBox2.Image = bitmap;

                pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
            }




        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...