使用IDataRecord从数据库中读取blob字段

zSy*_*sis 3 .net ado.net datareader

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

public class MyClass
{
   public string Name {get;set;}
   public byte[] ImageData { get; set;}
}
Run Code Online (Sandbox Code Playgroud)

//数据层

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

}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

小智 9

您可以使用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);
}
Run Code Online (Sandbox Code Playgroud)

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