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

مشكلة حول ال JDBC و ال interface List

بدأه mr.beshoy في 8 يناير 2011 · 7 رد · 640 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

وصف للمشكلة :

-----------------------

هنا عندى قاعدة بيانات بها جدولين

جدول clientData به بيانات العميل ( الإسم - التليفون - السرعة ) ، و

جدولinvoice به (التليفون - التاريخ)

آخر كل شهر يأتى العميل و يدفع الفاتورة فيتم تسجيله فى جدول ال invoice

ما أريده هو أن أعرض فى Jtable بيانات العملاء الذين لم يدفعوا الفاتورة .

-------------------------------------------------

الكود فى المرفقات :

هذه جزئية من مشروع أعمل فيه كتدريب شخصى مع نفسى

كانت تعمل و لكنه يعطينى كل العملاء الذى دفع و الذى لم يدفع رغم انى عامل شرط يمنع عرض الذين دفعوا !!!

و عندما فتحت مشروع جديد لعمل هذه الجزئية لم يعطينى أى نتائج على الاطلاق بل يظهر لى unable to Retrive Data

شكراً

TestClient.rar

#2

استخدم الامر دائما

e.printStackTrace();

The Microsoft Office Access database engine cannot find the input table or query 'inovice'.  Make sure it exists and that its name is spelled correctly.

يوجد فرق بين اسم الجدول في كود الجافا و اسم الجدول في قاعدة البيانات.

#3

هل الشرط يكون بواسطة الجافا

او بواسطة SQL

#4
اقتباس
يوجد فرق بين اسم الجدول في كود الجافا و اسم الجدول في قاعدة البيانات.

الصراحة ال spelling فى اسم جدول ال invoice سليم !!!!! مش عارف العيب فين

اقتباس

هل الشرط يكون بواسطة الجافا

او بواسطة SQL

انا فى الجزئية دى فى ال class MyPanel

   for (int i = 0; i < orginalList.size(); i++) {
            if (payList.contains(orginalList.get(i))) {
                continue;
            } else if (!payList.contains(orginalList.get(i))) {
                table = new JTable(databaseOperation.performeQuery(data), databaseOperation.getHeading());
                add(new JScrollPane(table), BorderLayout.CENTER);
            }
        }

بقول لو رقم التليفون فى ال orginalList موجود فى ال payList إذن إدخل على القيمة التالية فى ال for loop

أما لو رقم التليفون فى ال orginalList ليس بموجود فى ال payList يبقى أعرضه فى ال tabel

ده تفكيرى

أتمنى تساعدنى لو كلامى غلط فى المشكلتين

شكراً

#5

أنا أخذت بالى انى كنت كاتب شرط فى جملة If و شرط فى ال SQL

كانت سهواً .

التعديل فى المرفقات

لكن للأسف عند الضغط على الزر يقفل الشاشة و لا يعرض ال Jtable

ما السبب

شكراً

TestClient.rar

تم تعديل هذه المشاركة بواسطة mr.beshoy في 8 يناير 2011 في 17:58

#6
mr.beshoy كتب:

أنا أخذت بالى انى كنت كاتب شرط فى جملة If و شرط فى ال SQL

كانت سهواً .

التعديل فى المرفقات

لكن للأسف عند الضغط على الزر يقفل الشاشة و لا يعرض ال Jtable

ما السبب

شكراً

مش كان بيقفل بس كان بيختفى

 setVisiable(false);

وكمان مش تعمل عمليه اضافه الجدول فى الـfor loop

لانه بيضيف جداول بعدد صفوف الجدول

اعمل الاضافه بخارج الـ for loop بعدها

اعتقد ان دا كل شىء

تفضل بعد التعديل

TestClient.zip

دعواتك

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 8 يناير 2011 في 22:26

Software Developer
Mahmoudkelany.com


 

#7

شكراً للجميع ، و بالتوفيق يا محمود شد حيلك .

--------------------------------------------------------------

مازالت توجود مشكلة

أنا حالياً أريد عرض بيانات العملاء الذين لم يدفعوا الفاتورة

الطريقة الى عملتها :

فى ال class MyPanel

   for (int i = 0; i < orginalList.size(); i++) {
            if (payList.contains(orginalList.get(i))) {
                System.out.println("This tele pay:" + orginalList.get(i));
            } else if (!payList.contains(orginalList.get(i))) {
                table = new JTable(databaseOperation.performeQuery(orginalList.get(i)), databaseOperation.getHeading());
            }
        }

عاوز أقول فى الجزئية التى بداخل else : لو رقم التليفون مش موجود فى ال payList

هنمرره للدالة performeQuery

ثم فى ال class DatabaseOperation يوجد الدالة performeQuery

عملت فيها كده :

 public Vector<Vector<Object>> performeQuery(String theTele) {
        Vector<Vector<Object>> rows = new Vector<Vector<Object>>();
        try {
            String stmt = "SELECT name,tele,speed from clientData where tele = theTele";
            originalRs = originalStatement.executeQuery(stmt);
            while (originalRs.next()) {
                Vector<Object> rslt = new Vector<Object>();
                rslt.add(originalRs.getString(1));
                rslt.add(originalRs.getString(2));
                rslt.add(originalRs.getString(3));
                rows.add(rslt);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return rows;
    }

معترض على ال query

"SELECT name,tele,speed from clientData where tele = theTele";

و ال error : Too few parameters. Expected

ايه الخطأ فى ال query ده :wacko: :blink: ؟؟؟؟

الكود مرفق

شكراً لكم

TestClient.rar

#8
mr.beshoy كتب:

شكراً للجميع ، و بالتوفيق يا محمود شد حيلك .

معترض على ال query

"SELECT name,tele,speed from clientData where tele = theTele";

العفو تحت امرك :)

كنت بمرر بالصدفه قولت اساعد هههههه

لو اخدت بالك هتلاقى ان theTele دى متغير

هيكون التعديل كدا

String stmt = "SELECT  name ,tele , speed from clientData where tele = '" + theTele + "'";

Software Developer
Mahmoudkelany.com


 

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