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

كيف أعرض صورة بديلة في حالة عدم وجود صورة في قاعدة البيانات

بدأه asiri6 في 16 ديسمبر 2010 · 4 رد · 606 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي قاعدة بيانات يتم إدراج بيانات وصورة فيها ، ثم بعد ذلك يتم عرض البيانات في صفحة مع الصورة ولكن في حالة عدم وجود صورة في قاعدة البيانات أرغب في عرض صورة بديلة تخبر زائر الصفحة بأنه لا يوجد صورة بدلا من إظهار حرف × ، مع العلم أنه لدي كود من الاستاذ الرائع وفقه الله أحمد بركات ، ولكن لم يتم فيه جملة استثنائية في حالة عدم وجود ضورة في قاعدة البيانات

public partial class management_getimagefromdb : PageDataAccess
{
    protected void Page_Load(object sender, EventArgs e)
    {
        DataTable dt=DA.GetProducts(Request.QueryString["ProductId"].ToString());

        // لمعرفة هل يوجد بيانات أم لا
        if (dt.Rows.Count > 0)
        {
            if (!(dt.Rows[0]["image"] is DBNull))
            {
                byte[] imageByte=(byte[])dt.Rows[0]["image"];
                System.IO.MemoryStream ms = new System.IO.MemoryStream(imageByte);
                System.Drawing.Image img = System.Drawing.Image.FromStream(ms);

                int w = 100;
                if (Request.QueryString["w"] != null)

                    w = int.Parse(Request.QueryString["w"]);


                int h = w * img.Height / img.Width;

                System.Drawing.Image thimg = img.GetThumbnailImage(w,h,null,IntPtr.Zero);

                thimg.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
                img.Dispose();
                thimg.Dispose();

            }
        }

    }
}

تم تعديل هذه المشاركة بواسطة Xacker في 16 ديسمبر 2010 في 13:02 — السبب: إضافة وسم [CODE][/CODE]

#2

في البداية أود تنبيهك إلى استخدام تنسيق كود فأنت لست بجديد في المنتدى.

أما بالنسبة لاستفسارك، اقرأ ملف الصورة من مسار محلّي (من مجلد الصور في الموقع مثلاً) وقم بتحويله إلى سلسلة من البايتات كما تفعل في السطر

                byte[] imageByte=(byte[])dt.Rows[0]["image"];

وطبق ذات الخطوات عليه، أما بالنسبة للطول والعرض فحددهم على شكل ثوابت طالما أن الصورة معروفة بالنسبة لك. وتابع على ذات المنوال.

طبعاً كل ما يلزمك هو إضافة فرع ثاني للشرط:

if (!(dt.Rows[0]["image"] is DBNull))
            {
// ..
// ..
} else {
// ضع التعديلات هنا
}

وهذا كل مافي الأمر.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#3

أشكر لك ردك وتجاوبك لكن أتمنى أن توضح ماذا أضع في مكان التعديلات التي ذكرتها

if (!(dt.Rows[0]["image"] is DBNull))

{

// ..

// ..

} else {

// ضع التعديلات هنا

}

#4

من الافضل ان تجعل القيمة الافتراضية لحقل بيانات الصورة هو اسم صورة معينة

وبذلك تكون حليت المشكلة

yaso_772@yahoo.com

#5
YASO_772 كتب:

من الافضل ان تجعل القيمة الافتراضية لحقل بيانات الصورة هو اسم صورة معينة

وبذلك تكون حليت المشكلة

أؤيد هذا الحل

مع تحياتي

اللهم اجعلنا أهلاً لحمل رسالة العلم ونشرها

لتنعم أمة الإسلام بخير العلم ونوره

www.ijoul.com

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

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

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

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

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