14

我正在尝试varbinary(MAX)从 SQL Server获取byte[]C# 中的变量。

我怎样才能做到这一点?

谢谢

4

2 回答 2

28
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[];
    }
}
于 2011-10-11T10:29:28.070 回答
0

你必须选择 DATALENGTH(data) 和数据

其中 data 是您的 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);
}
于 2018-02-15T07:52:18.033 回答