2012-03-20 11 views
0

バイト型のデータを選択する必要があるクエリがあります。クエットバイト[] in petapoco

byte[] data 

次のように私のクエリは次のとおりです。

private IEnumerable<dynamic> GetData(int fileID){ 
    return Connection.db.Query<dynamic>("select Data from [File] where id = @0", fileID.ToString()); 
} 

byte[] actual = file.GetData(); 

と私は次のように長さを見つけたい:

actual.Length 

上記の問題は、私は長さを見つけなければならないということですGetDataは実際の動的オブジェクトを返します。

データを取得してその長さを取得するにはどうすればよいですか? PetaPocoでbyte []を照会するより良い方法はありますか?

+0

db型とは何ですか?エラーが発生していますか? – Schotime

答えて

3

私はちょうどこの試みた:

create table bytetable (
    id int identity(1,1) primary key, 
    data image (or varbinary(max)), 
) 

と期待どおりに動作します:bytetableが定義されている

var d = db.Fetch<dynamic>("select id, data from bytetable"); 
foreach (var item in d) 
{ 
    Console.WriteLine(item.id + "-" + Encoding.ASCII.GetString(item.data) + "-" item.data.Length); 
} 

を。 データ変数は実際にはbyte []です。

+0

上記のitem.dataだけを読むことができます。item.dataの長さを読み取る方法は?データは、 – learning

+0

の代わりにvarbinary(MAX)として定義され、byte []としてキャストされますか? – Schotime

+0

答えを更新したので、varbinary(max)で私のために働いた – Schotime

関連する問題