我需要使用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
}
感谢您的帮助
答案 0 :(得分:8)
您可以使用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()是按名称读取字段序号所必需的。
答案 1 :(得分:1)
是否有某些原因导致您无法在
中使用IDataRecord.GetBytes
int imageDataOrdinal = myDataRecord.GetOrdinal("ImageData");
long bytesRead = myDataRecord.GetBytes(
imageDataOrdinal,
0,
myClass.ImageData,
0
length
);