Как вы храните изображение в столбце изображения? - PullRequest
3 голосов
/ 13 апреля 2009

У меня есть таблица пользователей:

Name varchar(20)
Picture image

Я хочу сохранить изображение в столбце «Изображение» - как этого добиться с помощью сценариев SQL?

Ответы [ 2 ]

10 голосов
/ 13 апреля 2009

Вот пример кода для хранения изображения на сервере sql:

SqlConnection conn = new SqlConnection(connectionString);

try
{
    int imageLength = uploadInput.PostedFile.ContentLength;
    byte[] picbyte = new byte[imageLength];
    uploadInput.PostedFile.InputStream.Read (picbyte, 0, imageLength);

    SqlCommand command = new SqlCommand("INSERT INTO ImageTable (ImageFile) VALUES (@Image)", conn);
    command.Parameters.Add("@Image", SqlDbType.Image);
    command.Parameters[0].Value = picbyte;

    conn.Open();
    command.ExecuteNonQuery();
    conn.Close();
}
finally
{
    if (conn.State != ConnectionState.Closed)
    {
        conn.Close();
    }
}

ПРИМЕЧАНИЕ: uploadInput - это элемент управления вводом файла для загрузки файла изображения на сервер. Код взят из приложения ASP.NET.

РЕДАКТИРОВАТЬ: Вот сценарий вставки в типизированный столбец изображения:

INSERT INTO ImageTable (ImageColumn)

SELECT ImageColumn FROM 
OPENROWSET(BULK N'C:\SampleImage.jpg', SINGLE_BLOB) 
AS ImageSource(ImageColumn);
2 голосов
/ 13 апреля 2009

Чтобы получить доступ только по сценарию, найдите команду BULK в Books Online. SQL Server 2005 позволяет извлекать двоичные данные непосредственно с диска. Однако это не будет работать с предыдущими версиями SQL-сервера.

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