Вставьте изображение в базу данных SQL Server 2008 Express без внешнего приложения - PullRequest
1 голос
/ 22 сентября 2011

Я работаю с тестовыми данными в обозревателе серверов Visual Studio.Как бы я поместил изображения в базу данных так же, как тестовые изображения?У меня нет компонента, созданного для загрузки изображений.

Ответы [ 2 ]

1 голос
/ 17 октября 2011

Это будет работать для SQL Server 2008r2 ... но сначала вам нужно создать базу данных файлового потока.

// create databse

CREATE DATABASE Archive 
ON
PRIMARY ( NAME = Arch1,FILENAME = 'c:\data\archdat1.mdf'),
FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM( NAME = Arch3,FILENAME = 'c:\data\filestream1')
LOG ON  ( NAME = Archlog1,FILENAME = 'c:\data\archlog1.ldf')
GO

// создание таблицы

Use Archive
GO
CREATE TABLE [FileStreamDataStorage]
(
[ID] [INT] IDENTITY(1,1) NOT NULL,
[FileStreamData] VARBINARY(MAX) FILESTREAM NULL,
[FileStreamDataGUID] UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL UNIQUE DEFAULT NEWSEQUENTIALID(),
[DateTime] DATETIME DEFAULT GETDATE()
)
ON [PRIMARY]
FILESTREAM_ON FileStreamGroup1
GO

// вставка значения

Use Archive
GO
INSERT INTO [FileStreamDataStorage] (FileStreamData)
SELECT * FROM
OPENROWSET(BULK N'C:\Users\Public\Pictures\Sample Pictures\image1.jpg' ,SINGLE_BLOB) AS Document
GO
1 голос
/ 22 сентября 2011

Вы можете загрузить изображение в БД (и получить его), используя байт [] в качестве типа данных, предполагая, что в вашем столбце соответствующей БД есть BLOB .
Поэтому, если вы загрузите свое изображение с помощью byte[] img = File.ReadAllBytes(your_file), вы можете использовать запрос, подобный этому INSERT INTO table SET image_col = @par, где par - это параметр, значение которого img .

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