SQL Serverデータベースから.NETのバイト文字列を抽出し、それをイメージに変換しようとしています。私のコードは次のようになります
Dim strqry As String = "SELECT preview FROM dbo.AmazonS3FilePreview WHERE fileKey ='" + incomingKey + "'"
Dim myComm As SqlCommand = New SqlCommand(strqry, myConn)
Dim resultReader As SqlDataReader = myComm.ExecuteReader
Dim previewBytes As Byte() = Nothing
While resultReader.Read()
previewBytes = DirectCast(resultReader.Item("preview"), Byte())
End While
If Not previewBytes Is Nothing Then
Dim ms As MemoryStream = New MemoryStream(previewBytes)
Response.ContentType = "image/jpeg"
Response.OutputStream.Write(ms.GetBuffer, 0, ms.GetBuffer.Length)
Response.AddHeader("Content-Disposition", "attachment;filename=" + incomingKey)
End If
しかし、その行Response.OutputStream.Write(ms.GetBuffer, 0, ms.GetBuffer.Length)
で「。」というエラーが表示されますUnauthorizedAccessException: MemoryStream's internal buffer cannot be accessed
。データベース内の通常のchar列を確実に読み取ることができますが、バイトの読み取りに問題があるのはなぜですか?