Привязать изображение из базы данных SQL Server (поле изображения) к Ad Rotator
Я искал stackru для ответов, но не смог найти ничего, что могло бы мне помочь.
Я пытаюсь получить рекламный ротатор, который будет отображать изображения, хранящиеся в базе данных. Будет 5 разных объявлений для разных товаров. Продукты хранятся в cookie-файлах и будут отличаться после каждого заказа. Я знаю, что мне нужно извлечь двоичный файл из БД и преобразовать его в изображение. Это то, что я пробовал (пока тестирую только один продукт. Затем я могу использовать цикл foreach или что-то еще, сначала хочу получить правильную идею):
using (System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(strconn))
{
SqlCommand cmdSelect = new SqlCommand("select Image from Products where ProductID = '1'", con);
con.Open();
byte[] barrImg = (byte[])cmdSelect.ExecuteScalar();
string strfn = Convert.ToString(DateTime.Now.ToFileTime());
FileStream fs = new FileStream(strfn,
FileMode.CreateNew, FileAccess.Write);
fs.Write(barrImg, 0, barrImg.Length);
fs.Flush();
fs.Close();
Image IMG = Image.FromFile(strfn);
}
Но этот код не работает. Я получаю сообщение об ошибке, говорящее
Error 1 'System.Web.UI.WebControls.Image' does not contain a definition for 'FromFile'
Итак, у меня есть 2 вопроса: 1. Как правильно это сделать? 2. Как назначить правильные значения для поля ImageUrl в файле XML для Ad Rotator?
Спасибо заранее за любую помощь!
1 ответ
Вы можете попробовать этот способ, используя меньше строк кода, используя MemoryStream вместо File:
using (System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(strconn))
{
SqlCommand cmdSelect = new SqlCommand("select Image from Products where ProductID = '1'", con);
con.Open();
byte[] barrImg = (byte[])cmdSelect.ExecuteScalar();
MemoryStream ms = new MemoryStream(barrImg);
Image IMG = Image.FromStream(strfn);
}