2010-12-29 17 views
2

IDataRecordを使用してデータベースフィールドからバイト配列を取り込む必要があり、これを行う方法についてのヘルプが必要でした。IDataRecordを使用してデータベースからBLOBフィールドを読み取る

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

EDIT:でGetOrdinal()あなたは、単にGetValue()メソッドを使用してキャストすることができます任意の助け

答えて

8

ため

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

を使用すると、長さパラメータの値を設定する方法を教えてください

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

のようにIDataRecord.GetBytesを使用することはできませんが、いくつかの理由です –

関連する問題