2009-04-13 2 views

ответ

10

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

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.

EDIT: Вот вставка сценарий к типизированной колонке изображения:

INSERT INTO ImageTable (ImageColumn) 

SELECT ImageColumn FROM 
OPENROWSET(BULK N'C:\SampleImage.jpg', SINGLE_BLOB) 
AS ImageSource(ImageColumn); 
+1

Я думаю, что мы используем код C# для вставки изображений на SQL Server, но есть ли какой-либо SQL-скрипт, например (Вставить INTO Знаки названия (Name, Picture) («Venkat», «Здесь путь к изображению»), как это ... .Не думайте, что я задаю этот вопрос, я новичок в RDBMS. – 2009-04-13 17:18:57

+0

venkat: Как предлагает flatline, посмотрите команды BULK. –

+0

Как вы храните изображения в FlatFile? – 2009-04-13 17:47:23

2

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

Смежные вопросы