2013-11-17 2 views
0

Я пытаюсь захватить изображение из Интернета и добавить его в мою базу данных.Захватите изображение из Интернета, сохраните его в базе данных sql

String lsResponse = string.Empty; 

using (HttpWebResponse lxResponse = (HttpWebResponse)req1.GetResponse()) 
{ 
    using (BinaryReader reader = new BinaryReader(lxResponse.GetResponseStream())) 
    { 
     Byte[] lnByte = reader.ReadBytes(1 * 1024 * 1024 * 10); 

     using (FileStream lxFS = new FileStream(id + ".png", FileMode.Create)) 
     { 
     lxFS.Write(lnByte, 0, lnByte.Length); 

Мой тип данных SQL Server - Varbinary(MAX). Пробовал с разными типами (образ, ...) не работал.

Поместите его в базу данных.

SqlCommand cmd = new SqlCommand("INSERT INTO PlayersDB (id)) VALUES (@id); 
cmd.Parameters.AddWithValue("@id", lnByte); 

Я получаю сообщение об ошибке:

Implicit conversion from data type nvarchar to varbinary(max) is not allowed. Use the CONVERT function to run this query.

Итак, моя программа видит мой lnByte не в двоичном виде?

ответ

1

Сначала убедитесь, что тип данных верен. Я мало знаю о сервере SQL, но столкнулся с аналогичной проблемой в MySql. Я изменил тип данных на Blob и работал

+0

я пытался, образ, двоичный, VARBINARY, ничего не похоже на работу. –

1

Мы используем blob для хранения изображений в sql db на моем рабочем месте. Я не особенно разбираюсь в этом сам, но вот некоторые ресурсы Technet, которые могут объяснить это лучше, чем я могу.

Binary Large Object (Blob) Data (SQL Server)

FILESTREAM (SQL Server)

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