Хранение изображения в базе данных SQL Server 2008 R2 - PullRequest
2 голосов
/ 28 февраля 2012

Я пытаюсь сохранить изображение .png в базе данных, используя SQL Server 2008. Я сделал это очень хорошо, используя mySQL, но по какой-то причине это выглядит так при размещении его в ms SQL Server:

0x89504E470D0A1A0A0000000D49484452000003160000031608060000006CBE..etc etc etc

Тип данных столбца установлен на изображение.

А вот код, который я использую, чтобы вставить его в систему:

Dim SQL As String = "" & _
    "INSERT INTO dbo.thelabels (theV, theJID, theK, theS, theDRVorPAS, theImg, insertDayTime)" & _
    "VALUES ('" & theV & "', " & theJID & ", " & theK & ", " & theS & ", '" & theDRVorPAS & "', @img, '" & Format(DateTime.Now, "yyyy-MM-dd H:mm:ss") & "');"

    myCommandSQL.Connection = connSql
    myCommandSQL.Parameters.AddWithValue("@img", IO.File.ReadAllBytes(path))
    myCommandSQL.CommandText = SQL
    myCommandSQL.ExecuteNonQuery()
    connSql.Close()
    myCommandSQL.Dispose()

Любая помощь будет отличной! :)

David

1 Ответ

3 голосов
/ 28 февраля 2012

Во-первых, я бы рекомендовал определить столбец как тип VARBINARY (MAX) вместо IMAGE, который будет устаревшим в будущей версии .

Во-вторых, что заставляет вас думатьнеправильно вставляет изображение?Если вы выполните вставку, а затем запросите эту строку в SSMS, то вы будете видеть это как представление двоичных данных.Вам потребуется больше кода в .NET для преобразования этих двоичных данных обратно в форму изображения во время отображения.Я не пробовал этот инструмент, но, возможно, стоит проверить, все ли изображения в порядке - Средство просмотра изображений SQL .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...