الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أعينونى على حل مشكلة عرض الصورة

بدأه ahmed hicis في 9 مارس 2011 · 4 رد · 778 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة

اخوانى المبرمجين

اطلب منك العون فى مساعدتى فى عرض صورة فى

data list

مع العلم

انى استخدم فيجول استوديو 2008

مع سيكول سيرفر 2005

الصورة تخزن فى جدول بقاعدة البيانات نوع العمود image

اريد عرض الصورة التى خزنت فى قاعدة البيانات

انا جربت بعض الطرق فى المنتدى هنا ولم تفلح معى

صورة الجدول فى قاعدة البيانات

post-224425-073121500 1299699666_thumb.j

المرفقات
image.JPG

تم تعديل هذه المشاركة بواسطة ahmed hicis في 9 مارس 2011 في 22:43

#2

السلام عليكم يا اخي

1- انتا مش محتاج انك تحفظ الصورة في قاعدة البيانات من النوع Image لذلك الطرقية الافضل انك تحفظا من النوع string وتحفظ الاسم فقط [ اسم الصورة فقط داخل قاعدة البيانات ]

2- لازم تنشا فلدور في visual studio داخل الموقع بتاعك

3- عند حفظ الصورة في قاعدة البيانات عن طريقة جملة insert يجب استخدام هذا الكود لحفظ الصورة في الفلدور الخاص بي الموقع

4- FileUpload1.SaveAs(Server.MapPath("Image/" + FileUpload1.FileName));

img.ImageUrl = "Image/" + FileUpload1.FileName;

); PlaceHolder1.Controls.Add(img

شرح الكود

اول سطر بتستخد اداة لاختيار الصورة من الجهاز بالاضافة الي Server.MapPath معناها انك بتخبر المترجم ان الصورة المراد حفظها سوف يكون في نفس المسار الموجود فيه الموقع + اسم الفلدر الذي انشاته سابقا "/Image" + اسم الصورة FileUpload1.FileName

السطر الثاني بتخبر الاداة image بانها سوف تاخذ اسم الصورة والمسار من هذا الفلدر "Image/" + FileUpload1.FileName;

السطر الاخير باضيف الاداة من النوع image بداخل الاداة PlaceHolder1 لعرض الصورة

ملحوظة

يكمن اضافة اداة PlaceHolder1 داخل data list

واضافة الاداة image داخل ال PlaceHolder1

ارجو ان تنجح معك

وابلغني بالنتيجة

#4

ا-ابراهيم جزاك الله خير على الرد ولكنى لا اعرف اين اطبق هذا الكود

لكنى قمت بعمل بروسيدر لتخزين كافة البيانات ومن ضمنها الصورة

وهذا هوه كود البروسيدير

ALTER PROCEDURE AddEditNews
(
/*متغيرات مثل الموجوده فى جدول الاخبار*/
@id int,
@title nvarchar(100),
@sumary nvarchar(500),
@details ntext,
@cid int,
@inhome bit,
@ismain bit,
@image image

)
AS
	if(@id=-1)

	insert into news(title,sumary,details,[date],cid,inhome,ismain,[image])
	values(@title,@sumary,@details,getdate(),@cid,@inhome,@ismain,@image)

	else
	update news set
	title=@title,
	sumary=@sumary,
	details=@details,
	cid=@cid,
	inhome=@inhome,
	ismain=@ismain,
	[image]=isnull(@image,image)
	where id=@id

وايضا ملف الكلاس

 public int AddEditNews(string id, string title, string sumary, string details, string cid, bool inhome, bool ismain, byte[] image)
    {
        SqlCommand cmd = new SqlCommand("AddEditNews", cn);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@id", id);
        cmd.Parameters.AddWithValue("@title", title);
        cmd.Parameters.AddWithValue("@sumary", sumary);
        cmd.Parameters.AddWithValue("@details", details);
        cmd.Parameters.AddWithValue("@cid", cid);
        cmd.Parameters.AddWithValue("@inhome", inhome);
        cmd.Parameters.AddWithValue("@ismain", ismain);
        cmd.Parameters.AddWithValue("@image", image);

        return cmd.ExecuteNonQuery();
    }

وهذا هوه كود الزرار الخاص بتخزين البيانات

protected void btnadd_Click(object sender, EventArgs e)
    {

        //انشاء مصفوفة من نوع بايت
        byte[] imagebyte = null;
        //لو ملف الرفع لدية ملف
        if (fleimg.HasFile)
        {
            //اذا كان اللى رفعه من نوع صورة
            if(fleimg.PostedFile.ContentType.Contains("image"))
            {
                //اجعل حجم المصفوفة يساوى حجم الصورة المرفوعة
                imagebyte = new byte[fleimg.PostedFile.ContentLength];   
                //اقرأ الصورة المدخلة وابدا من صفر الى حجم الصورة
                fleimg.PostedFile.InputStream.Read(imagebyte,0,imagebyte.Length);
            }

            else
            {
                //فى حاله عدم تنفيذ الكود
                lbmes.Text = "الصورة المختارة خاطئة";
                //تفيد فى عدم تنفيذ باقى الكود بعدها وذلك لان الخبر متعلق بالصورة
                return;
            }
        }

            if (btnadd.Text.Equals("اضافة"))
            {

                if (DA.AddEditNews("-1", txttitle.Text, txtsum.Text, txtdetails.Text, dblcategory.SelectedValue, rblshow.SelectedIndex == 1, rblshow.SelectedIndex == 0, imagebyte) > 0)
                    lbmes.Text = "تم إضافة الخبر بنجاح";
                     txttitle.Text = txtsum.Text = txtdetails.Text = "";
            }
                else{
              if  (DA.AddEditNews(Request.QueryString["id"], txttitle.Text, txtsum.Text, txtdetails.Text, dblcategory.SelectedValue, rblshow.SelectedIndex == 1, rblshow.SelectedIndex == 0, imagebyte) > 0)
                    lbmes.Text = "تم تحديث الخبر بنجاح";
                    Response.Redirect("ViewDeleteNews.aspx");
                }
            }

تم تعديل هذه المشاركة بواسطة ahmed hicis في 10 مارس 2011 في 10:51

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…