Извлечь varbinary (MAX) из SQL Server в байт [] в C # - PullRequest
8 голосов
/ 11 октября 2011

Я пытаюсь получить varbinary(MAX) из SQL Server в byte[] переменную в C #.

Как я могу это сделать?

Спасибо

Ответы [ 2 ]

23 голосов
/ 11 октября 2011
private static byte[] getDocument(int documentId)
{
    using (SqlConnection cn = new SqlConnection("..."))
    using (SqlCommand cm = cn.CreateCommand())
    {
        cm.CommandText = @"
            SELECT DocumentData
            FROM   Document
            WHERE  DocumentId = @Id";
        cm.Parameters.AddWithValue("@Id", documentId);
        cn.Open();
        return cm.ExecuteScalar() as byte[];
    }
}
0 голосов
/ 15 февраля 2018

Вы должны выбрать DALALENGTH (данные) и данные

, где data - ваш varbinary (макс.)

int i=0;
long dataLen = dr.GetInt64(i++);
if (dataLen > 0)
{
    Data = new byte[dataLen];
    dr.GetBytes(i++, 0, Data, 0, (int)dataLen);
}
...