Retrieve varbinary(MAX) from SQL Server to byte[] in C#

前端 未结 2 990
不知归路
不知归路 2020-12-18 23:15

I\'m trying to get a varbinary(MAX) from SQL Server to a byte[] variable in C#.

How can I do this?

Thanks

相关标签:
2条回答
  • 2020-12-18 23:33
    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 讨论(0)
  • 2020-12-18 23:35

    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);
    }
    
    0 讨论(0)
提交回复
热议问题