【发布时间】:2015-08-26 13:07:17
【问题描述】:
如何使用 C# 获取 long 原始类型值?
【问题讨论】:
-
请不要多次发布同一个问题。请学会忍耐。 SO 不是支持论坛,也不是用来处理紧急情况的。
-
@APC:我不认为这是一个骗局......虽然我不确定他在另一个问题中问的是什么。
如何使用 C# 获取 long 原始类型值?
【问题讨论】:
由于您没有发布任何代码,我不知道您知道多少。我假设您已经了解如何使用 OracleDataReader 执行查询并返回结果集。
LONG 和 LONG RAW 列有一个问题。 您必须将OracleCommand 的InitialLONGFetchSize 属性设置为非零值。
InitialLONGFetchSize 的默认值为零,这意味着不会检索 LONG 或 LONG RAW 列的数据。如果将其设置为 -1,则将检索所有数据。您可能不想为较大的值执行此操作。如果您将其设置为高于零的任何值,那么这就是最初获取和缓存的字节数。
对于InitialLONGFetchSize,您应该阅读the documentation,因为您还需要了解其他一些细节。
【讨论】:
这是解决此问题的代码。
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;
}
}
【讨论】: