I'm trying to get a varbinary(MAX) from SQL Server to a byte[] variable in C#.
varbinary(MAX)
byte[]
How can I do this?
Thanks
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[]; } }
You have to SELECT DATALENGTH(data) and data
where data is your varbinary(max)
int i=0; long dataLen = dr.GetInt64(i++); if (dataLen > 0) { Data = new byte[dataLen]; dr.GetBytes(i++, 0, Data, 0, (int)dataLen); }
Copyright © 2021 Jogjafile Inc.