Я пытаюсь получить varbinary(MAX) из SQL Server в byte[] переменную в C #.
varbinary(MAX)
byte[]
Как я могу это сделать?
Спасибо
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[]; } }
Вы должны выбрать 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); }