Как отобразить изображение из базы данных (сохраненное как большой двоичный объект), если идентификатор изображения неизвестен?

#c# #asp.net #sql #sql-server #blob

#c# #asp.net #sql #sql-сервер #большой двоичный объект

Вопрос:

У меня есть база данных SQL Server, в которой есть таблица, содержащая несколько полей, одно из которых называется ‘Image’, типа varbinary(MAX) . Нет поля ‘ImageID’, и поэтому я предполагаю, что я не могу использовать страницу ashx для отображения изображения в asp: элемент управления изображением (как объясняется в многочисленных руководствах).

Какой подход я должен использовать для отображения изображения? Я должен использовать большой двоичный объект принудительно и не могу добавить поле ‘ImageID’ из-за строгих требований.

Есть идеи?

Ответ №1:

Зачем вам ImageID? Любое «Изображение» в данной строке идентифицируется первичным ключом таблицы. В примерах это должен быть ImageID. В вашем случае используйте первичный ключ

Одно из лучших руководств, которое я видел в книге Ремуса Русану «Загрузка и выгрузка изображений с SQL Server через ASP.Net MVC»

Ответ №2:

Не знаю и не видел руководств, о которых вы говорите, но я предполагаю, что эти образцы передают ImageID в ashx, а затем извлекают большой двоичный объект из базы данных, используя этот ImageID в качестве критерия в инструкции SQL.

Таким образом, вы можете сделать что-то подобное, просто используя какой-либо другой идентификатор вместо ImageID, например, RecordID или что-то другое, что у вас есть в вашей таблице. Просто убедитесь, что этот столбец является уникальным идентификатором для данной строки.

Вероятно, вам просто нужно использовать столбец первичного ключа этой таблицы.