【问题标题】:C# - How to get oracle long raw type valueC# - 如何获取 oracle 长原始类型值
【发布时间】:2015-08-26 13:07:17
【问题描述】:

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

【问题讨论】:

  • 请不要多次发布同一个问题。请学会忍耐。 SO 不是支持论坛,也不是用来处理紧急情况的。
  • @APC:我不认为这是一个骗局......虽然我不确定他在另一个问题中问的是什么。

标签: c# oracle


【解决方案1】:

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

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

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

对于InitialLONGFetchSize,您应该阅读the documentation,因为您还需要了解其他一些细节。

【讨论】:

    【解决方案2】:

    这是解决此问题的代码。

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

    【讨论】:

    • 如果有人使用 System.Data.Common 类,则需要进行类型转换: ((OracleCommand)selectCommand):InitialLONGFetchSize := -1 selectCommand 是一个 IDbCommand 对象,OracleCommand 来自Oracle.ManagedDataAccess.Client 命名空间。
    猜你喜欢
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多