2012-03-20 29 views
0

我有一個查詢,其中我必須選擇類型爲字節的數據。在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 2012-03-21 09:59:12

回答

3

我只是嘗試這樣做:

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

其中bytetable定義:

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

,它按預期工作。數據變量的確是一個字節[]。

+0

與上面我只能讀取item.data,如何讀取item.data的長度?數據被定義爲varbinary(MAX)而不是圖像 – learning 2012-03-21 12:50:08

+0

將其轉換爲字節[]? – Schotime 2012-03-22 04:11:04

+0

因爲我已經更新了答案而用varbinary(max)工作過 – Schotime 2012-03-22 08:58:43