نمایش عکس در gridview

3tayesh

عضو جدید
سلام دوستان.
چطوری میشه عکسی که در sql ذخیره شده را در gridview نمایش داد؟
با تشکر.
 

rezazd

عضو جدید
سلام دوستان.
چطوری میشه عکسی که در sql ذخیره شده را در gridview نمایش داد؟
با تشکر.
دوست عزیز اصولا عکس را نباید در اس کیو ال ذخیره کنید چون حجم دیتابیس بسرعت بزرگ میشود و کارایی و سرعت ان کم میشود
شما باید نام و مسیر عکس را در فیلدی ذخیره کنید و به این صورت در صفحه وب نمایش دهید
مثال خیلی خوبی هم در اس دی کا ویزوال استدیو هست
کد:
[SIZE=2][COLOR=#008000]<img Width ="60" Height= "60" src = "images\<%#DataBinder.Eval(Container.DataItem,"News_image")%>"/> 
[/COLOR][/SIZE]
 

3tayesh

عضو جدید
خوب من میدونم که باید آدرس رو در اس کیو ال ذخیره کنم. ولی اینو نمی دونم که چه طوری باید توی هر سطر gridview اون رو نمایش بدم. من با asp.net|website دارم طراحی میکنم و به کدش نیاز دارم. ممنون میشم اگه کسی در این زمینه چیزی میدونه کمکم کنه.
*ضمناً برنامه به زبان #C است*
 

rezazd

عضو جدید
خوب من میدونم که باید آدرس رو در اس کیو ال ذخیره کنم. ولی اینو نمی دونم که چه طوری باید توی هر سطر gridview اون رو نمایش بدم. من با asp.net|website دارم طراحی میکنم و به کدش نیاز دارم. ممنون میشم اگه کسی در این زمینه چیزی میدونه کمکم کنه.
*ضمناً برنامه به زبان #C است*

در قسمت تمپلت کرید ویو کدی که نوشتم بنویسید

یا اگر دات نت 2 اس دی کا رو نصب کنید که حتما توصییه میکنم مثال های خوبی در این باره داره
کد:
    [COLOR=blue]<[/COLOR][COLOR=maroon]table[/COLOR] cellpadding=10 style="font: 10pt verdana"[COLOR=blue]>[/COLOR]
          [COLOR=blue]<[/COLOR][COLOR=maroon]tr[/COLOR][COLOR=blue]>[/COLOR]
            [COLOR=blue]<[/COLOR][COLOR=maroon]td[/COLOR] width=1 bgcolor="BD8672"[COLOR=blue]/>[/COLOR]
            [COLOR=blue]<[/COLOR][COLOR=maroon]td[/COLOR] valign="top"[COLOR=blue]>[/COLOR]
              [COLOR=blue]<[/COLOR][COLOR=maroon]img[/COLOR] alt="book image" align="top" src='[COLOR=blue]<%[/COLOR]#[COLOR=red][B] DataBinder.Eval(Container.DataItem, "title_id", "images/{0}.gif") [/B][/COLOR][COLOR=blue]%>[/COLOR]' [COLOR=blue]>[/COLOR]
            [COLOR=blue]</[/COLOR][COLOR=maroon]td[/COLOR][COLOR=blue]>[/COLOR]
            [COLOR=blue]<[/COLOR][COLOR=maroon]td[/COLOR] valign="top"[COLOR=blue]>[/COLOR]
              [COLOR=blue]<[/COLOR][COLOR=maroon]b[/COLOR][COLOR=blue]>[/COLOR]Title: [COLOR=blue]</[/COLOR][COLOR=maroon]b[/COLOR][COLOR=blue]>[/COLOR][COLOR=blue]<%[/COLOR]#[COLOR=red][B] DataBinder.Eval(Container.DataItem, "title") [/B][/COLOR][COLOR=blue]%>[/COLOR][COLOR=blue]<[/COLOR][COLOR=maroon]br[/COLOR][COLOR=blue]>[/COLOR]
              [COLOR=blue]<[/COLOR][COLOR=maroon]b[/COLOR][COLOR=blue]>[/COLOR]Category: [COLOR=blue]</[/COLOR][COLOR=maroon]b[/COLOR][COLOR=blue]>[/COLOR][COLOR=blue]<%[/COLOR]#[COLOR=red][B] DataBinder.Eval(Container.DataItem, "type") [/B][/COLOR][COLOR=blue]%>[/COLOR][COLOR=blue]<[/COLOR][COLOR=maroon]br[/COLOR][COLOR=blue]>[/COLOR]
              [COLOR=blue]<[/COLOR][COLOR=maroon]b[/COLOR][COLOR=blue]>[/COLOR]Publisher ID: [COLOR=blue]</[/COLOR][COLOR=maroon]b[/COLOR][COLOR=blue]>[/COLOR][COLOR=blue]<%[/COLOR]#[COLOR=red][B] DataBinder.Eval(Container.DataItem, "pub_id") [/B][/COLOR][COLOR=blue]%>[/COLOR][COLOR=blue]<[/COLOR][COLOR=maroon]br[/COLOR][COLOR=blue]>[/COLOR]
              [COLOR=blue]<[/COLOR][COLOR=maroon]b[/COLOR][COLOR=blue]>[/COLOR]Price: [COLOR=blue]</[/COLOR][COLOR=maroon]b[/COLOR][COLOR=blue]>[/COLOR][COLOR=blue]<%[/COLOR]#[COLOR=red][B] DataBinder.Eval(Container.DataItem, "price", "$ {0}") [/B][/COLOR][COLOR=blue]%>[/COLOR]
              [COLOR=blue]<[/COLOR][COLOR=maroon]p[/COLOR][COLOR=blue]>[/COLOR]
              [COLOR=blue]<[/COLOR][COLOR=blue][B]asp:CheckBox id="Save" runat="server"[COLOR=blue]/>[/COLOR] [COLOR=blue]<[/COLOR][COLOR=maroon]b[/COLOR][COLOR=blue]>[/COLOR]Save to Favorites[COLOR=blue]</[/COLOR][COLOR=maroon]b[/COLOR][COLOR=blue]>[/COLOR][/B][/COLOR]
            [COLOR=blue]</[/COLOR][COLOR=maroon]td[/COLOR][COLOR=blue]>[/COLOR]
          [COLOR=blue]</[/COLOR][COLOR=maroon]tr[/COLOR][COLOR=blue]>[/COLOR]
        [COLOR=blue]</[/COLOR][COLOR=maroon]table[/COLOR][COLOR=blue]>[/COLOR]

      [COLOR=blue]</[/COLOR][COLOR=maroon]ItemTemplate[/COLOR][COLOR=blue]>[/COLOR]
 

A.S.Roma

عضو جدید
کاربر ممتاز
3tayesh عزیز من هم این مشکل را دارم لینک هم باز نمی شود می شه کمکم کنید؟
همون طور که تو تاپیک بخش C# هم گفتم تحت وب باید از Generic Handler استفاده کنی.
فرض می کنیم یک GridView موجوده و در Templateش شما می خوای عکس از دیتابیس بخونی
ابتدا یه generic Handler به پروژه ات اضافه کن (پسوند فایلش ashx هست.) اسمش رو فرض می کنیم شما گذاشتی ImageHandler
viual Studio خودش یکسیری کد واست می نویسه . شما باید این کدی که اینجا قرار می دم رو در قسمت ProcessRequest بنویسی .
کد:
کد:
 public void ProcessRequest(HttpContext context)
    {
    int id = context.Request.QueryString["ID"];
        // Load the image ()
        byte[] data = ...;


        // Display the image
        context.Response.OutputStream.Write(data, 0, data.Length);
        context.Response.ContentType = "image/JPEG";
    }

id در واقع آیدی رکوردی از جدوله که حاوی عکسه.
حالا در GridView باید کدی مثل این داشته باشی :
کد:
<img src='ImageHandler.ashx?ID=<%# Eval("ID") %>' />


 

mehran_arshad

عضو جدید
بله متوجه شدم ولی من دیروز با لینکیو اس کیو ال کلاسیک این کار رو اتحام دادم جواب نگرفتم
 

A.S.Roma

عضو جدید
کاربر ممتاز
پروژه اترو آپلود کن تا ببینم مشکل از کجاست.
 

mehran_arshad

عضو جدید
A.S.Roma عزیز دارم روی یک پروژه تمرینی کار می کنم تا مشکلم رفع بشه بعد پروژه اصلی رو شروع کنم.
من از linq to sql calssic استفاده کردم وقتی مسیر عکس ها رو به وسیله شی fileupload در داخل دیتابیسم می گذارم دیتا گرید ویو اون رو به وسیله imagefiled uنمایش میده یعنی مسیر عکس رو چگونه داخل دیتابیس بنویسم مهمه. مثلا من داخل دیتابیس می نویسم D:\pic1.jpg و گرید ویو اون رو نمایش نمی ده ولی وقتی مسیر همون عکس رو داخل دیتابیس به وسیله fileupload نگاه می کنم اینطوری نوشته pic1~/
نمی دونم چه رازی پشت این قضیه هست که چرا مسیر من رو که درست هم نوشتم پیدا نمی کنه؟؟؟
یعنی مسیر رو چطوری باید بنویسم که با شی fileupload دیگه کاری نداشته باشم و بتونم مسیر رو درست بنویسم؟
می تونی کمکم کنی؟
 

A.S.Roma

عضو جدید
کاربر ممتاز
دوست عزیزاین چیزی که الان دارید میگن صورت مساله رو عوض کرد.

تا الان تصور من این بود که شما دارید خود فایل رو به شکل binary در دیتابیس ذخیره می کنید.

شما چیزی که از کنترل FileUpload می گیرید مسیر فایل در کامپیوتر کلاینت هست و فقط به درد ذخیره کردن در سرور می خوره.

چیزی که باید در دیتابیس ذخیره کنید "~/Photos/imageName.jpg" هست. (البته پس از ذخیره در مسیر ~/Photos)

موقع نمایش هم src کنترل Image رو میذارید همون چیزی که در دیتابیس ذخیره کردید.
 

mehran_arshad

عضو جدید
بعدا اگه سایتم را روی هاست بگذارم این روش من که مشکلی ایجاد نخواهد کرد؟
 

Similar threads

بالا