【问题标题】:Reading a blob field from database using IDataRecord使用 IDataRecord 从数据库中读取 blob 字段
【发布时间】:2010-12-29 16:33:49
【问题描述】:

我需要使用 IDataRecord 从数据库字段中填充字节数组,我需要有关如何完成此操作的帮助。

public class MyClass
{
   public string Name {get;set;}
   public byte[] ImageData { get; set;}
}

// 数据层

public MyClass Populate(IDataRecord dr)
{
   var myClass = new MyClass();
   myClass.Name = myDataRecord.GetString(myDataRecord.GetOrdinal("NAME"));
   myClass.ImageData = // Need info on how to load this

}

感谢您的帮助

【问题讨论】:

    标签: .net ado.net datareader


    【解决方案1】:

    您可以简单地使用GetValue() 方法进行投射:

    public MyClass Populate(IDataRecord dr)
    {
       var myClass = new MyClass();
    
       int ordinal1 = myDataRecord.GetOrdinal("NAME");
       int ordinal2 = myDataRecord.GetOrdinal("IMAGEDATA");
    
       myClass.Name = myDataRecord.GetString(ordinal1);
       myClass.ImageData = (byte[])myDataRecord.GetValue(ordinal2);
    }
    

    编辑: GetOrdinal() 是按名称读取字段序号所必需的。

    【讨论】:

      【解决方案2】:

      是否有某些原因导致您不能像在中那样使用IDataRecord.GetBytes

      int imageDataOrdinal = myDataRecord.GetOrdinal("ImageData");
      long bytesRead = myDataRecord.GetBytes(
                           imageDataOrdinal,
                           0,
                           myClass.ImageData,
                           0
                           length
                       );
      

      【讨论】:

      • 请说明如何设置length参数的值
      猜你喜欢
      • 2014-10-02
      • 2015-01-14
      • 2017-05-28
      • 2013-10-23
      • 1970-01-01
      • 2019-06-28
      • 2017-01-24
      • 2014-04-24
      • 2012-01-25
      相关资源
      最近更新 更多