2012-03-20 4 views
0

У меня есть запрос, в котором я должен выбрать Data, который имеет тип байта.query byte [] в 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?

+0

Что такое тип db? Вы получаете сообщение об ошибке? – Schotime

ответ

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

+0

как его байт []? – Schotime

+0

Работал для меня с varbinary (max), поскольку я обновил ответ – Schotime

Смежные вопросы