C# – 如何获取oracle long原始类型值

如何用C#获取长原始类型值?

由于你还没有发布任何代码,我不知道你知道多少。 我将假设您已经了解如何执行查询并使用OracleDataReader获取结果集。

LONG和LONG RAW专栏有一个问题。 您必须将OracleCommandInitialLONGFetchSize属性设置为非零值。

InitialLONGFetchSize的默认值为零,这意味着不会为LONG或LONG RAW列检索任何数据。 如果将其设置为-1,则将检索所有数据。 您可能不希望为大值执行此操作。 如果将其设置为大于零的任何值,那么将是最初提取和缓存的字节数。

您应该阅读InitialLONGFetchSize 的文档 ,因为您还需要了解其他一些细节。

这是Code来解决这个问题。

  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; } }