使用 IDataRecord 从数据库中读取 blob 字段
Posted
技术标签:
【中文标题】使用 IDataRecord 从数据库中读取 blob 字段【英文标题】:Reading a blob field from database using IDataRecord 【发布时间】: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
感谢您的帮助
【问题讨论】:
【参考方案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参数的值以上是关于使用 IDataRecord 从数据库中读取 blob 字段的主要内容,如果未能解决你的问题,请参考以下文章
从google api Fitness playground读取血压和血糖数据源