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

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

رائج
بدأه Mahmoud Kelany في 2 يوليو 2010 · 138 رد · 21,159 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

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

اخوانى واخواتى اعضاء هذا المنتدى الكريم

فانه لمن دواعى سرورى الامنيه :) ان اقدم لكم برنامج بسيط

قد يتعلم منه اى مبتدا فى استخدامه لقواعد البيانات

المشروع يتكلم ازاى ؟؟؟

انا كنت عندى خالى فى الاسماعيليه " مصر طبعا :lol: "

وبعدين لقيته بيسجل السجلات بتاعت المبيعات والمشتريات فى ورق

وبعدين بعد ما خلصت امتحانات قولت ابدا فى البرنامج دا تنشيط ليا فى اول مره استعمل قواعد البيانات

مع الجافا فى مشروع يعتبر من وجهه نظرى له فى استخدامه لخالى ؟؟ ليس لمكتبه كبيره فهو كامل كما هو يريد

المشروع يحتوى على قواعد بيانات للبيانات المدخله

من اسم الصنف و سعر شراء الوحده و سعر بيع الوحده والكميه ويتم حساب باقى البيانات للجدول بدون تخزينها فى قواعد البيانات

لا داعى لذلك مثل السعر الاجمالى للشراء و السعر الاجمالى للبيع والفرق بينهم

وهناك قاعده بيانات خاصه بالمستخدمين تتكون من اسم المستخدم والرقم السرى ونوع المستخدم ؟

وبم انى لا اعلم كيفى اعطى صلحيات للمستخدم الذى فى جدول المستخدمين لدى من خلال برنامج mySQL

فقد كتبت هذه الصلحيات عن طريق تفعيل بعض الاشياء للمستخدم

فلدينا فى قاعده البيانات 3 انواع من المستخدمين

مدير و مشرف و زائر

وقد قومت بعمل كل ما فى وسعى فى جعل الشكل جمالى بالشكل الذى يطلبه اى مستخدم

المشروع مده تنفيذه يومين فقط من 30-6-2010 الى 1-7-2010 اى يوميى الاربعاء والخميس كنت لسه مخلص امتحانات يوم الاتنين

و فى مشوار يوم الثلاثاء والحمدلله ربنا اهدانى وقعدت على البرنامج

هناك العديد من المميزات والصلحيات

مثل لديك 5 اشكال جماليه للبرنامج ممكن التبديل بيهما بسهوله والحمدلله تم مساعدتى من قبل الاخ الكريم علاء الصباحى جزاه الله خيرا

فى ذلك الموضوع /index.php?showtopic=224424

سوف تعرفها عندما تستخدم البرنامج

واليكم صور مقتبسه من البرنامج

post-217802-012340600 1278061898_thumb.p

post-217802-010001100 1278062377_thumb.p

post-217802-084069800 1278062397_thumb.p

post-217802-076547300 1278062458_thumb.p

post-217802-015996300 1278061797_thumb.p

post-217802-086639100 1278061812_thumb.p

post-217802-096801600 1278061832_thumb.p

post-217802-024538200 1278062417_thumb.p

post-217802-017125400 1278061847_thumb.p

post-217802-073489000 1278061879_thumb.p

post-217802-048392400 1278062432_thumb.p

post-217802-068126800 1278061861_thumb.p

post-217802-006577900 1278061784_thumb.p

post-217802-021843500 1278062445_thumb.p

معلش اخذت صور من استايل قد يكون سىء قليلا

لكن لديك العديد من الاستايلات

يمكن التبديل بينهما

post-217802-074330300 1278062466_thumb.p

لتحميل المشروع

قواعد البيانات

mobarkLib_DB.zip

الكود الخاص بالمشروع

MobarkLib_srcCode.zip

منتظر ارائكم وتوجيهاتكم لى فى اول مشروع كامل بقواعد البيانات والجافا

صراحه لقد تعلمت منه الكثير والكثير

واريد ان اطبع الجدول الموجود لكن ليس لدى الامكانيه الكفايه لذلك

فسوف اتعلم ذلك واطور فيه ان شاء الله

لا اسيبكم تجربوه

دمتم فى رعايه الله وامنه

سلام عليكم

المرفقات
about.pngadmin.pngadmin2.pngadminGrants.pngdeleteUser.pngeditPersonal.pngeditUser.pnglogin.pngmod.pngmodGrants.pngnewUSer.pngRegisteredUser.pngUntitlessssssd.pngvisitor.pngstyles.png
5

Software Developer
Mahmoudkelany.com


 

#2

ما شاء الله شغل جميل اخى محمود

00020309t.gif

1958_1963.gif
#3

مجهود رائع..

لماذا تستخدم finalizer عند غلق db connection ؟ الدالة قد لا تعمل وقد يتوقف برنامجك عند انهائه بواسطة المستخدم وتكون db في حالة غير معروفة لك ،ربما يقوم jdbc driver بهذه المهمه (اغلاق الconnection) ، ولكن لا تعتمد عليه.. اعتقد ان driver الخاص باوراكل يصدر رسالة تحذير عند انتهاء البرنامج وعدم غلق connection او resultset.

اراك تستخدم الدالة gextText للحصول على القيمة الموجودة في JPasswordField

اقتباس
passwordFieldTwo.getText()

نظريا اذا كان برنامجك شغال، يستطيع اي power hacker الحصول على الباسورد الذي تم تسجيل الدخول فيه، لماذا لأن الدالة getText ترجع الناتج في String وقد يكون موجود على الذاكرة ولا يتم تحريره.. وبالتالي الباسورد يكون موجود على الذاكرة.. بالتالي اذا قام المستخدم بعمل dump لمحتويات الذاكرة فسوف يرى الباسورد ك clear text ..

لذلك sun قامت بالغاء هذه الدالة deprecated واستبدلتها بأخرى getPassword ترجع مصفوفه من الأحرف.. بعدها يمكنك تحويله لنص String يكون داخل الدالة local scope وبالتالي سوف ينتهي ويكون جاهز للالغاء من قبل gc اذا عمل.. أو اذا كنت مبرمج شكاك جدا :) فيمكنك تصفير الstring :

Arrays.fill(password, ' '); 
password = null;

سأحاول أن شاء الله أن اطبق الفكرة وأقوم بعمل prove لها (How to Steal Password from getText Method) ،، سأضعها في الفريق اذا نجحت التجربة..

أراك تستخدم هذه الدالة كثيرا:

 new LookAndFeel().setSelectedLookAndFeel(4);
   SwingUtilities.updateComponentTreeUI(this);

هل تستطيع ضمان ان الLook الرابع دائما في اي Platform يكون كما تتوقع..استبدلها بالString للLook أو بكائن لهذا الLook .. ماذا لو كان الplatform لا يوجد فيه ما عدا 3 أشكال.. سيحدث ArrayIndexOutOfException ويتوقف البرنامج..

الJMenuBar تستطيع أيضا تحويلها من اليمين لليسار..

بالنسبة لطباعة الجدول ، فيمكنك استخدام اداة التقارير IReport فهي توفر لك خدمات الطباعة.. أو طباعة الجدول مباشره عن طريق الدالة print الموجودة في JTable:

http://java.sun.com/javase/6/docs/api/javax/swing/JTable.html#print()

هذه جولة سريعه على الكود، وعمل موفق أخي الكريم ، ماشاء الله ..

عن نفسي أحتاج اسبوع على الأقل لكتابة برنامج :lol:

بالتوفيق..

تم تعديل هذه المشاركة بواسطة Wajdy Essam في 2 يوليو 2010 في 14:41

3

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#4

بالتوفيق وان شاء الله

والله يوفقك لكل خير

In bad state

#5

تعليق جيدا جدا, أخي وجدي..

بالنسبة لموضوع كلمة المرور, كيف يمكن عمل dump لمحتويات الذاكره :D, حقيقة قد قرأت من قبل عن خطورة وصول الهاكر للذاكره و الحصول على ما فيها, و لكني متشوق لرؤية هذا عمليا و لذا أتشوق لرؤية موضوعك.

@محمود, إخص عليك يا محمود, بقه كده متحطش إسمى معاك :D

تم تعديل هذه المشاركة بواسطة هويدي في 2 يوليو 2010 في 14:50

#6
اقتباس
ما شاء الله شغل جميل اخى محمود

شكرا لكى اختى اسراء

مرور طيب

Wajdy Essam كتب:

مجهود رائع..

لماذا تستخدم finalizer عند غلق db connection ؟ الدالة قد لا تعمل وقد يتوقف برنامجك عند انهائه بواسطة المستخدم وتكون db في حالة غير معروفة لك ،ربما يقوم jdbc driver بهذه المهمه (اغلاق الconnection) ، ولكن لا تعتمد عليه.. اعتقد ان driver الخاص باوراكل يصدر رسالة تحذير عند انتهاء البرنامج وعدم غلق connection او resultset.

اراك تستخدم الدالة gextText للحصول على القيمة الموجودة في JPasswordField

نظريا اذا كان برنامجك شغال، يستطيع اي power hacker الحصول على الباسورد الذي تم تسجيل الدخول فيه، لماذا لأن الدالة getText ترجع الناتج في String وقد يكون موجود على الذاكرة ولا يتم تحريره.. وبالتالي الباسورد يكون موجود على الذاكرة.. بالتالي اذا قام المستخدم بعمل dump لمحتويات الذاكرة فسوف يرى الباسورد ك clear text ..

لذلك sun قامت بالغاء هذه الدالة deprecated واستبدلتها بأخرى getPassword ترجع مصفوفه من الأحرف.. بعدها يمكنك تحويله لنص String يكون داخل الدالة local scope وبالتالي سوف ينتهي ويكون جاهز للالغاء من قبل gc اذا عمل.. أو اذا كنت مبرمج شكاك جدا :) فيمكنك تصفير الstring :

Arrays.fill(password, ' '); 
password = null;

سأحاول أن شاء الله أن اطبق الفكرة وأقوم بعمل prove لها (How to Steal Password from getText Method) ،، سأضعها في الفريق اذا نجحت التجربة..

أراك تستخدم هذه الدالة كثيرا:

 new LookAndFeel().setSelectedLookAndFeel(4);
   SwingUtilities.updateComponentTreeUI(this);

هل تستطيع ضمان ان الLook الرابع دائما في اي Platform يكون كما تتوقع..استبدلها بالString للLook أو بكائن لهذا الLook .. ماذا لو كان الplatform لا يوجد فيه ما عدا 3 أشكال.. سيحدث ArrayIndexOutOfException ويتوقف البرنامج..

الJMenuBar تستطيع أيضا تحويلها من اليمين لليسار..

بالنسبة لطباعة الجدول ، فيمكنك استخدام اداة التقارير IReport فهي توفر لك خدمات الطباعة.. أو طباعة الجدول مباشره عن طريق الدالة print الموجودة في JTable:

http://java.sun.com/javase/6/docs/api/javax/swing/JTable.html#print()

هذه جولة سريعه على الكود، وعمل موفق أخي الكريم ، ماشاء الله ..

عن نفسي أحتاج اسبوع على الأقل لكتابة برنامج :lol:

بالتوفيق..

ربنا يخليكى اخى وجدى وشكرا جدا على مرورك الجميل هذا

استخدم finilizer لاغلاق الاتصال بقاعده البيانات ف فى حاله انه تم انهاء العمل من استخدام قاعده البيانات

وهى بنتهاء البرنامج

فانه يتم استدعاء هذه الداله الللتى تحتوى على اغلاق الاتصال

وهذا لا يتم الا فى نهايه البرنامج خالص فكيف تحدث اخطاء ؟؟ مممكن توضيح لهذه الجزئيه اكثر ؟

اقتباس
اراك تستخدم الدالة gextText للحصول على القيمة الموجودة في JPasswordField

امممم فعلا انا استخدمها فى ايجاد كل passwords لكنى لا ادرى بهذه المشكله اللتى تتكلم عنها

لذلك انا اطرح ما افعل كى ارى التوجيهات

خلاص انا هاحاول اغير الداله دى كما قولت وان لم استطيع ذلك فسوف ابلغك ان شاء الله

اقتباس

سأحاول أن شاء الله أن اطبق الفكرة وأقوم بعمل prove لها (How to Steal Password from getText Method) ،، سأضعها في الفريق اذا نجحت التجربة..

ان شاء الله ربنا يوفققك باذن الله

اقتباس

هل تستطيع ضمان ان الLook الرابع دائما في اي Platform يكون كما تتوقع..استبدلها بالString للLook أو بكائن لهذا الLook .. ماذا لو كان الplatform لا يوجد فيه ما عدا 3 أشكال.. سيحدث ArrayIndexOutOfException ويتوقف البرنامج..

انا فى ملف الـ lookAndFeel

استخدمت مصفوفه تحتوى على 5 strings

وانا اطلب ان يتم جعل الlookAndFeel باحد هذه الـ strings

  private String[] lookAndFeel = {"com.jtattoo.plaf.bernstein.BernsteinLookAndFeel", "com.jtattoo.plaf.aero.AeroLookAndFeel", "com.jtattoo.plaf.luna.LunaLookAndFeel", "com.jtattoo.plaf.smart.SmartLookAndFeel", "com.jtattoo.plaf.mcwin.McWinLookAndFeel"};

فكيف يعطينى خطا من نوعArrayIndexOutOfException ؟

فانا فى الكود كاتب لحد اقصى عدد 4 يعنى من 0 الى 4 وهذا فى حدود الـ

 String[] lookAndFeel;

اقتباس

الJMenuBar تستطيع أيضا تحويلها من اليمين لليسار

فعلا تغافلت عنها

سوف احاول فى ذلك

اقتباس
بالنسبة لطباعة الجدول ، فيمكنك استخدام اداة التقارير IReport فهي توفر لك خدمات الطباعة.. أو طباعة الجدول مباشره عن طريق الدالة print الموجودة في JTable:

http://java.sun.com/...le.html#print()

انا فعلا بدات فى البحث عنها ونزلت الملفات الخاصه بالاخ محمد فتحى الغائب عنا هذه الفتره لعل المانع غير

وكمان فكرت قولت اكيد ممكن يكون فيه داله اسمهاprint فى الجدول كما هى موجوده فى JTextField

جزاك الله خيرا اخى الكريم وعلى جولتك

وانتظر منك المرور مره اخرى على شىء جديد

لكن لدى سوال

فانا فى الكود

اكتب البيانات على الزاير والقوائم بالعربى

فقد حاولت ان استخدمها فى ملف properties

ولكنى فشلت فى فهم ذلك فان لديك شرح مبسط كمبتدا فى هذه الجزئيه اعطينى اياه

ربنا يخليك هل تعتقد ان العمل فى هذا المشروع لمده يومين جيد ؟ ام اننى تسرعت من حيث ان هناك اخطاء حدث نتيجه التسرع ؟ ؟

Software Developer
Mahmoudkelany.com


 

#7

موضوع الfinilizer موضوع شائك دوما لذلك استخدم النصحية العامة "لا تستخدم هذه الدالة" "Finalizers are unpredictable, often dangerous, and generally unnecessary" لكي تبعد عن المشاكل.. في حالتك هذه لا توجد مشكلة حقيقية دائما حيث أنك لا تقوم بعمل update للقاعدة ولكنك فقط تغلق connection في الfinalizer وفي حال لم تقم بها سوف يقوم الdriver بها.. لذلك لا مشكلة في الكود أو العمل..

في كتاب Effective Java ذكر المؤلف في الفصل الثاني:

اقتباس
It is entirely possible, even likely, that a program terminates without executing finalizers on some objects that are no longer reachable. As a consequence, you should never depend on a finalizer to update critical persistent state. For example, depending on a finalizer to release a persistent lock on a shared resource such as a database is a good way to bring your entire distributed system to agrinding halt

المشكلة هي أنك لا تضمن أن الدالة سوف تعمل.. واذا وضعت كود لعمل update فيها فقد لن يعمل.. لذلك لا يجب وضع اي كود يقوم بعمل تحديث فيها.. حاليا كودك لا يقوم بالتحديث ولكنه يقوم بغلق الاتصال، فلا توجد مشكلة حيث ان الdriver سوف يغلقه اذا انتهي البرنامج أيضا ..

بالنسبة للباسورد لكي تحصل عليه :

String s = new String ( passwordField.getPassword() ) ;
// use it , then assign null 
s = null;

وللطش كلمة المرور من الذاكرة ، لا أعلم حاليا عن أدوات Dumping في جافا، ولكني سأبحث في هذا الموضوع ان شاء الله.. وسأضع النتيجة حتى لو فشلت التجربة :) .

أما بالنسبة للLook and Feel ، فكلامك صحيح ولا توجد مشكلة .. فقط أعتقدت أن هناك دالة جاهزة تعطيها الindex وترجع لك الLook and Fell ، لكنك قمت بعمل مصفوفه بها اسماء الLooks وهذا صحيح ولا مشكلة في ذلك..

ولجعل البرنامج بأكثر من لغه، هناك مشروع طرحه الأخ عيافي:

/index.php?showtopic=203863

اذا لم تكن واضحة الفكرة منها، فيمكنني طرح شرح مبسط حولها ان شاء الله.. فقط اعلمنا بالنتيجة.

أما بالنسبة لمدة العمل فهي ممتازة جدا..

وفقكم الله ، والى الأمام..

تم تعديل هذه المشاركة بواسطة Wajdy Essam في 2 يوليو 2010 في 15:51

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#8

حقيقة يا أخ وجدي الكتاب الذي ذكرته "Effective Java" كتاب رائع جدا (كتاب من الأخر)

ربما أستطيع أن أقرأه قريبا إن شاء الله sleep.gif

#9
X-File كتب:

بالتوفيق وان شاء الله

والله يوفقك لكل خير

اللهم امين

ربنا يوفقنا جميعا يارب الى ما يحبه ويرضاه

هويدي كتب:

تعليق جيدا جدا, أخي وجدي..

بالنسبة لموضوع كلمة المرور, كيف يمكن عمل dump لمحتويات الذاكره :D, حقيقة قد قرأت من قبل عن خطورة وصول الهاكر للذاكره و الحصول على ما فيها, و لكني متشوق لرؤية هذا عمليا و لذا أتشوق لرؤية موضوعك.

@محمود, إخص عليك يا محمود, بقه كده متحطش إسمى معاك :D

فعلا تعليقات اعجبتنى

وانا سوف ابحث فى موضوع كلمه المرور دى

:( معلش يا هويدى بقا المره الجايه سهو منى :wacko:

اشكرك ع المرور ومنتظر تعليقاتك

Software Developer
Mahmoudkelany.com


 

#10
Wajdy Essam كتب:

موضوع الfinilizer موضوع شائك دوما لذلك استخدم النصحية العامة "لا تستخدم هذه الدالة" "Finalizers are unpredictable, often dangerous, and generally unnecessary" لكي تبعد عن المشاكل.. في حالتك هذه لا توجد مشكلة حقيقية دائما حيث أنك لا تقوم بعمل update للقاعدة ولكنك فقط تغلق connection في الfinalizer وفي حال لم تقم بها سوف يقوم الdriver بها.. لذلك لا مشكلة في الكود أو العمل..

في كتاب Effective Java ذكر المؤلف في الفصل الثاني:

المشكلة هي أنك لا تضمن أن الدالة سوف تعمل.. واذا وضعت كود لعمل update فيها فقد لن يعمل.. لذلك لا يجب وضع اي كود يقوم بعمل تحديث فيها.. حاليا كودك لا يقوم بالتحديث ولكنه يقوم بغلق الاتصال، فلا توجد مشكلة حيث ان الdriver سوف يغلقه اذا انتهي البرنامج أيضا ..

بالنسبة للباسورد لكي تحصل عليه :

String s = new String ( passwordField.getPassword() ) ;
// use it , then assign null 
s = null;

وللطش كلمة المرور من الذاكرة ، لا أعلم حاليا عن أدوات Dumping في جافا، ولكني سأبحث في هذا الموضوع ان شاء الله.. وسأضع النتيجة حتى لو فشلت التجربة :) .

أما بالنسبة للLook and Feel ، فكلامك صحيح ولا توجد مشكلة .. فقط أعتقدت أن هناك دالة جاهزة تعطيها الindex وترجع لك الLook and Fell ، لكنك قمت بعمل مصفوفه بها اسماء الLooks وهذا صحيح ولا مشكلة في ذلك..

ولجعل البرنامج بأكثر من لغه، هناك مشروع طرحه الأخ عيافي:

/index.php?showtopic=203863

اذا لم تكن واضحة الفكرة منها، فيمكنني طرح شرح مبسط حولها ان شاء الله.. فقط اعلمنا بالنتيجة.

أما بالنسبة لمدة العمل فهي ممتازة جدا..

وفقكم الله ، والى الأمام..

اممم

تمام

بس انا دلوقتى بقفل الاتصال فقط فهذا لا يؤدى الى مشاكل

اما بالنسبه لموضوع الرقم السرى فجارى العمل عليه علشان اشوف امتى بالظبط اجعله يساوى null

طب الحمدلله ان مشكله الـ lookAndFeel وضحت كدا

المشكله انى رايت ذلك لكنه كود وليس هناك شرح له

لكنى سوف ابذل قصارى جهدى فى فهمه لانها حاجه جديده عليا

وان لم اتمكن من ذلك فسوف ابلغك

جزاك الله الف خير

سوال كيف اجعل الـ table uneditable اجعل الخلايا غير قابله للتعديل

طب الحمدلله كويس

طب سوال تانى معلش تاعبك معايا

طريقتى فى اعطاء الصلحيات هل هي طريقه كويسه

ولا يوجد هناك طرق اخرى عن طريق الـmySQL

او التعامل مع المستخدم بشكل عام

معلش تاعبك معايا

بس كبدايه بس وان شاء الله نكون ف عون اللى هيتعبنا زييى كدا :)

Software Developer
Mahmoudkelany.com


 

#11
Wajdy Essam كتب:

اراك تستخدم الدالة gextText للحصول على القيمة الموجودة في JPasswordField

نظريا اذا كان برنامجك شغال، يستطيع اي power hacker الحصول على الباسورد الذي تم تسجيل الدخول فيه، لماذا لأن الدالة getText ترجع الناتج في String وقد يكون موجود على الذاكرة ولا يتم تحريره.. وبالتالي الباسورد يكون موجود على الذاكرة.. بالتالي اذا قام المستخدم بعمل dump لمحتويات الذاكرة فسوف يرى الباسورد ك clear text ..

لذلك sun قامت بالغاء هذه الدالة deprecated واستبدلتها بأخرى getPassword ترجع مصفوفه من الأحرف.. بعدها يمكنك تحويله لنص String يكون داخل الدالة local scope وبالتالي سوف ينتهي ويكون جاهز للالغاء من قبل gc اذا عمل.. أو اذا كنت مبرمج شكاك جدا :) فيمكنك تصفير الstring :

Arrays.fill(password, ' '); 
password = null;

السلام عليكم

اخى وجدى

حاولت استخدام الgetPassword

لكن واجهتنى مشكله اثناء الدخول

ففى الدخول المستخدم تم تخزين الباص ورد بتاعته على الشكل التالى [C@d9660d

لكن فى حين ان الباص كان de ?

فاذا حاولت الدخول فانه لا يتطابق اثناء الدخول

فانى بحاجه الى تحول الـ [C@d9660d الى حروف كى تتطابق مع الرقم السرى الذى اخدلته

فكيف يتم حل هذه المشكله ؟؟؟

Software Developer
Mahmoudkelany.com


 

#12

انا لم استطيع كما زكرت لك اخى وجدى

لكى حاولت بطريقه اخرى ولكن باستخدم

pass.getText();

وهى انى لم اخزن اى معلومات عن الرقم السرى

وعندما انتهى من استخدام الرقم السرى

اضعه = null

اعتقد انها فكره فى الحمايه ايضا ؟

اليس كذلك ؟ ؟؟

جزئيه اخرى بالنسبه لاستخدام print على الجدول

عاوز اطلع الجدول خط بحجم معين وكدا ؟؟ كيف ؟ باستخدام

 JTable.print();

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 2 يوليو 2010 في 21:18

Software Developer
Mahmoudkelany.com


 

#13

[C@d9660d

هذه النتيجه في الغالب (التي تكون هناك أحرف ثم علامة @ ثم ارقام تمثل عنوان في الذاكرة) تكون من أي كائن يتم استدعاء دالة toString (ويكون الكائن لا يوجد فيه اعادة تعريف لهذه الدالة) له فيستخدم الدالة من الكلاس الأب Object.

عليك بتحويل الأحرف في مصفوفه الأحرف الى String ، وأسهل طريقة تمريرها لكائن جديد من String ..

String s = new String(field.getPassword());

if ( s.equals("your pass"))
doFunction ;
else doother

بالنسبة للدالة pass.getText فاعتقد أن المشكلة الأساسية هي في تطبيق كود تلك الدالة getText حيث يختلف تطبيقها عن getPassword ..

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

بالنسبة للطباعة في الJTable لا أظن انك تستطيع التحكم في العملية (بالرغم من اني لم أجربها).. لذلك أنصحك باستخدام أداة التقارير فهي تعطيك تحكم أفضل.. خصوصا أغلب التقارير في البرامج يجب ان تحتوي على هيدر صغير يوضح رقم الفاتورة والتاريخ واسم الشركة وهكذا اشياء..

بالتوفيق..

تم تعديل هذه المشاركة بواسطة Wajdy Essam في 2 يوليو 2010 في 20:01

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#14
Wajdy Essam كتب:

[C@d9660d

هذه النتيجه في الغالب (التي تكون هناك أحرف ثم علامة @ ثم ارقام تمثل عنوان في الذاكرة) تكون من أي كائن يتم استدعاء دالة toString (ويكون الكائن لا يوجد فيه اعادة تعريف لهذه الدالة) له فيستخدم الدالة من الكلاس الأب Object.

عليك بتحويل الأحرف في مصفوفه الأحرف الى String ، وأسهل طريقة تمريرها لكائن جديد من String ..

String s = new String(field.getPassword());

if ( s.equals("your pass"))
doFunction ;
else doother

بالتوفيق..

صراحه انا عملت كدا

لكن مش عارف انا لم لقيت الحروف دى طلعت لى واتخزنت كمان فى قواعد البيانات

روحت مستخدم الطريقه اللى ذاكرتها فى ردى السابق ؟

وبالنسبه لموضوع انى اجعل القائمه على اليمين فعلا جعلتها على اليمين

وحولت كل العناصر على اليمين

لكن لم اعمل الامر هذا على

logInMenuItem.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);

فانه يتم اخفاء الرمز المختصر من جانب العنصر هذا

هل هذا غير مدعم فى التحويل من المين للشمال ام لها طريقه اخرى ؟؟؟

اقتباس
بالنسبة للطباعة في الJTable لا أظن انك تستطيع التحكم في العملية (بالرغم من اني لم أجربها).. لذلك أنصحك باستخدام أداة التقارير فهي تعطيك تحكم أفضل.. خصوصا أغلب التقارير في البرامج يجب ان تحتوي على هيدر صغير يوضح رقم الفاتورة والتاريخ واسم الشركة وهكذا اشياء..

تمام خلاص نتجه الى اداه التقارير

اى نعم هذا ما اريده بالفعل اظاهر تصميم معين لصفحه الطباعه كما ذكرت اخى الكريم

بجد جزاك الله خيرا

تعبك معايا معلش اخوك الصغير :)

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 2 يوليو 2010 في 20:05

Software Developer
Mahmoudkelany.com


 

#15

جرب باستعمال السطر التالي في ال constructor الخاص بال frame

applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
#16
herch كتب:

جرب باستعمال السطر التالي في ال constructor الخاص بال frame

applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);

فعلا جزاك الله خيرا

لكن التصميم بتاعى كله اتقلب

انظر الصوره التاليه

post-217802-058486300 1278098497_thumb.p

انا اريد فقط القائمه ؟ بكل محتواياتها فقط

هل يمكن

ام استخدم كل مكون لوحده واعمله له ComponentOrientation

لكن بالنسبه للـIReport

حاسس انه صعب ومش فاهم حاجه :(

ربنا يسترها

سوال تانى معلش

انا دلوقتى لو سجلت فى قاعده البيانات بالعربى بيظهر التانج كدا ؟؟؟؟؟؟

كيف اسجل بداخلها بيانات باللغه العربيه

المرفقات
Untiteeeled.png

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 2 يوليو 2010 في 22:28

Software Developer
Mahmoudkelany.com


 

#17

السلام عليكم

اخى الكريم اليك بعض الملاحظات

اولا :

هل حاولت اضافة اصناف باللغة العربية؟

ثانيا :

فى شاشة عن About وضعت دالة رئيسية Main Method ولا تستخدم (احذفها)

ثالثا:

فى جدول المستخدمين users تعتمد على اسم المستخدم وكلمة المرور كمفتاح اساسى primary key

ثم تسمح للمستخدم بتغييرهم وهذا خطأ كبير فى قواعد البيانات

انشأ عمود فى نفس الجدول وليكن اسمه userId واستخدمه كمفتاح اساسى

واجعل الحقلين اسم المستخدم وكلمة المرور حقول عادية

ويمكنك استخدامه فى امور اخرى كثيرة مثال :

فى هذا المنتدى يمكنك عرض اسماء الظهور لاحد الاعضاء مع ان المنتدى يسمح له بتغيير اسمه وكلمة المرور الخاصة به

فكيف يتعرف عليه المنتدى بعد ذلك (لابد انه لديه رقم معرف ID لا يتغير ابدا)

رابعا :

عند الاتصال بقاعدة البيانات لتعديل المستخدمين تستخدم الفئة UsersService وفى كل دالة فيها

تريد استخدام الاتصال connection تستدعيه من الفئة DbService

بهذه الطريقة

connection = new DbService().getConnection();

ولاحظ ان كلمة new تقوم بانشاء كائن جديد من الفئة DbService

والتى يحتوى المنشئ أو ال constructor الخاص بها على الكود التالى

	public DbService() {
    	try {
        	Class.forName(driver);
        	connection = DriverManager.getConnection(url, username, password);
        	falgConnected = true;
    	} catch (SQLException ex) {
        	falgConnected = false;
        	JOptionPane.showMessageDialog(null, "تعذر الوصول الى قاعدة البيانات", "خطأ", JOptionPane.ERROR_MESSAGE);
    	} catch (ClassNotFoundException ex) {
        	falgConnected = false;
        	Logger.getLogger(DbService.class.getName()).log(Level.SEVERE, null, ex);
    	}
	}

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

كان بامكانك اعتماد تقنية OOP وتقوم باستدعاء هذه الفئة مرة واحدة وتخزنها فى متغير عام وثابت مثلا

public static final DbService myDbService=new DbService();

وبهذا يمكنك استخدامها فى اى مكان فى برنامجك دون تغيير او انشاء كائن جديد منها

خامسا :

قم بتحديد صنف من الجدول ثم حاول اضافة صنف جديد

ستلاحظ ظهور خطأ يفيد بتكرار المفتاح الاساسى primary key لماذا ؟

سادسا :

فى شاشة About عند فتح مسار المنتدى او المراسل الشخصى لك

استخدمت الفئة Desktop التى تقوم بتحميلها ثم تقحم نفسك فى دوامة نظام التشغيل وتقوم بتحميل فئات اخرى

وتكتب كود كبير جدا كهذا

    	try { //attempt to use Desktop library from JDK 1.6+
        	Class<?> d = Class.forName("java.awt.Desktop");
        	d.getDeclaredMethod("browse", new Class[]{java.net.URI.class}).invoke(d.getDeclaredMethod("getDesktop").invoke(null), new Object[]{java.net.URI.create(url)}); //above code mimicks:

    	} catch (Exception ignore) { //library not available or failed
        	String osName = System.getProperty("os.name");
        	try {
            	if (osName.startsWith("Mac OS")) {
                	Class.forName("com.apple.eio.FileManager").getDeclaredMethod("openURL", new Class[]{String.class}).invoke(null, new Object[]{url});
            	} else if (osName.startsWith("Windows")) {
                	Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);
            	} else { //assume Unix or Linux
                	String browser = null;
                	for (String b : browsers) {
                    	if (browser == null && Runtime.getRuntime().exec(new String[]{"which", b}).getInputStream().read() != -1) {
                        	Runtime.getRuntime().exec(new String[]{browser = b, url});
                    	}
                	}
                	if (browser == null) {
                    	throw new Exception(Arrays.toString(browsers));
                	}
            	}
        	} catch (Exception e) {
            	JOptionPane.showMessageDialog(null, errMsg + "\n" + e.toString());
        	}
    	}

مع ان كل هذا الكود يكتب فى سطر واحد هكذا

Desktop.getDesktop().browse(new URL("/index.php?showtopic=224430").toURI());

دون ادنى اهتمام بنظام التشغيل او المتصفح

وملحوظة مهمة انك تقوم بتحميل هذه الفئة مع انها موجودة فى الحزمة java.awt وانت تعرف هذا جيدا فلماذا ؟

Class<?> d = Class.forName("java.awt.Desktop");

واخيرا :

التقارير لا تعنى الطباعة فقط

بل هى الناتج الكامل لمشروعك فلنفرض ان مدير الشركة جاء ليلقى نظرة على البرنامج الذى صممته لشركته

هل تدخله فى متاهة ال navigation وتقول له ادخل الى الجدول كذا واضغط على الزر كذا وارجع بالزر كذا

وكل هذا لطباعة الجدول والذى سيطبع بتنسيق سئ بكل تأكيد أظن التقارير لاغنى عنها

لا اقلل من برنامجك ولكن اريد ان اساعدك على الخروج ببرنامج جيد

يعبر عنك كمبرمج ويشرفك كعضو فى الفريق العربى للبرمجة

تحياتى و تقبل مرورى

تم تعديل هذه المشاركة بواسطة Oracle_Java في 2 يوليو 2010 في 22:36

1


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#18

المفروض أن ال ComponentOrientation يكون نفسه بالنسبة لكل الواجهة، لكن أهل مكة أدرى بشعابها

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

ألق نظرة على هذه الروابط، ممكن تفيدك

/index.php?showtopic=167926&view=findpost&p=1048789

/index.php?showtopic=167926&view=findpost&p=1048913

تم تعديل هذه المشاركة بواسطة herch في 2 يوليو 2010 في 22:54

#19
Oracle_Java كتب:

السلام عليكم

اخى الكريم اليك بعض الملاحظات

اولا :

هل حاولت اضافة اصناف باللغة العربية؟

ثانيا :

فى شاشة عن About وضعت دالة رئيسية Main Method ولا تستخدم (احذفها)

ثالثا:

فى جدول المستخدمين users تعتمد على اسم المستخدم وكلمة المرور كمفتاح اساسى primary key

ثم تسمح للمستخدم بتغييرهم وهذا خطأ كبير فى قواعد البيانات

انشأ عمود فى نفس الجدول وليكن اسمه userId واستخدمه كمفتاح اساسى

واجعل الحقلين اسم المستخدم وكلمة المرور حقول عادية

ويمكنك استخدامه فى امور اخرى كثيرة مثال :

فى هذا المنتدى يمكنك عرض اسماء الظهور لاحد الاعضاء مع ان المنتدى يسمح له بتغيير اسمه وكلمة المرور الخاصة به

فكيف يتعرف عليه المنتدى بعد ذلك (لابد انه لديه رقم معرف ID لا يتغير ابدا)

رابعا :

عند الاتصال بقاعدة البيانات لتعديل المستخدمين تستخدم الفئة UsersService وفى كل دالة فيها

تريد استخدام الاتصال connection تستدعيه من الفئة DbService

بهذه الطريقة

connection = new DbService().getConnection();

ولاحظ ان كلمة new تقوم بانشاء كائن جديد من الفئة DbService

والتى يحتوى المنشئ أو ال constructor الخاص بها على الكود التالى

	public DbService() {
    	try {
        	Class.forName(driver);
        	connection = DriverManager.getConnection(url, username, password);
        	falgConnected = true;
    	} catch (SQLException ex) {
        	falgConnected = false;
        	JOptionPane.showMessageDialog(null, "تعذر الوصول الى قاعدة البيانات", "خطأ", JOptionPane.ERROR_MESSAGE);
    	} catch (ClassNotFoundException ex) {
        	falgConnected = false;
        	Logger.getLogger(DbService.class.getName()).log(Level.SEVERE, null, ex);
    	}
	}

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

كان بامكانك اعتماد تقنية OOP وتقوم باستدعاء هذه الفئة مرة واحدة وتخزنها فى متغير عام وثابت مثلا

public static final DbService myDbService=new DbService();

وبهذا يمكنك استخدامها فى اى مكان فى برنامجك دون تغيير او انشاء كائن جديد منها

خامسا :

قم بتحديد صنف من الجدول ثم حاول اضافة صنف جديد

ستلاحظ ظهور خطأ يفيد بتكرار المفتاح الاساسى primary key لماذا ؟

سادسا :

فى شاشة About عند فتح مسار المنتدى او المراسل الشخصى لك

استخدمت الفئة Desktop التى تقوم بتحميلها ثم تقحم نفسك فى دوامة نظام التشغيل وتقوم بتحميل فئات اخرى

وتكتب كود كبير جدا كهذا

    	try { //attempt to use Desktop library from JDK 1.6+
        	Class<?> d = Class.forName("java.awt.Desktop");
        	d.getDeclaredMethod("browse", new Class[]{java.net.URI.class}).invoke(d.getDeclaredMethod("getDesktop").invoke(null), new Object[]{java.net.URI.create(url)}); //above code mimicks:

    	} catch (Exception ignore) { //library not available or failed
        	String osName = System.getProperty("os.name");
        	try {
            	if (osName.startsWith("Mac OS")) {
                	Class.forName("com.apple.eio.FileManager").getDeclaredMethod("openURL", new Class[]{String.class}).invoke(null, new Object[]{url});
            	} else if (osName.startsWith("Windows")) {
                	Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);
            	} else { //assume Unix or Linux
                	String browser = null;
                	for (String b : browsers) {
                    	if (browser == null && Runtime.getRuntime().exec(new String[]{"which", b}).getInputStream().read() != -1) {
                        	Runtime.getRuntime().exec(new String[]{browser = b, url});
                    	}
                	}
                	if (browser == null) {
                    	throw new Exception(Arrays.toString(browsers));
                	}
            	}
        	} catch (Exception e) {
            	JOptionPane.showMessageDialog(null, errMsg + "\n" + e.toString());
        	}
    	}

مع ان كل هذا الكود يكتب فى سطر واحد هكذا

Desktop.getDesktop().browse(new URL("/index.php?showtopic=224430").toURI());

دون ادنى اهتمام بنظام التشغيل او المتصفح

وملحوظة مهمة انك تقوم بتحميل هذه الفئة مع انها موجودة فى الحزمة java.awt وانت تعرف هذا جيدا فلماذا ؟

Class<?> d = Class.forName("java.awt.Desktop");

واخيرا :

التقارير لا تعنى الطباعة فقط

بل هى الناتج الكامل لمشروعك فلنفرض ان مدير الشركة جاء ليلقى نظرة على البرنامج الذى صممته لشركته

هل تدخله فى متاهة ال navigation وتقول له ادخل الى الجدول كذا واضغط على الزر كذا وارجع بالزر كذا

وكل هذا لطباعة الجدول والذى سيطبع بتنسيق سئ بكل تأكيد أظن التقارير لاغنى عنها

لا اقلل من برنامجك ولكن اريد ان اساعدك على الخروج ببرنامج جيد

يعبر عنك كمبرمج ويشرفك كعضو فى الفريق العربى للبرمجة

تحياتى و تقبل مرورى

وعليكم السلام اخى الكريم

صراحه اعجبنى كلامك ومرورك

فانا وضعت البرنامج هنا لتحليله وتعلم من اخطائى التى لا اظنها

بالنسبه لاضافه اصناف بالعربى فقط عرضت ان لدى مشكله فى ذلك

اما بالنسبه للموضوع الmain فى الabout dialog اعتقد ان ابقائها او ازالتها لا يفيد

لكنى كنت ابقيها لتجربه الشغل ليس الا فسوف احذفها ان شاء الله

اضافه بيانات تم تعديل التكرار لانه انا لم كنت بحذف بيانات من قاعده البيانات كان الـ id بيكون ثابت فانا عدلت على القاعده بشكل يدوى

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

وكمان اضفت شرط فى الكود على هذه الجزئيه فى الداله saveButtonAction

اضفت على السطر

sales.setId(rowEdited);

الشرط التالى

if (flagNew == false) {
                    sales.setId(rowEdited);
                }

بالنسبه لموضوع الـURL انا صراحه لا اعلم ولا ادرى ما هذا الكود ولا كيف يعمل

فانا حاولت ان استخدم كائن من ننوعDesktop لكن فشلت وتوجهتت الى النت ووجدت هذ الكود

وكان اخر شىء لدى فلم اهتم بهذا الكود وجدته يعمل فاشتغلت عليه فقط

وانا فى التعليق كتبت هذا

/**
     * this method to open the url link in the defult browser
     * this is taken from the site
     * <href ="http://www.centerkey.com/java/browser/">Open Url in defult browser</a>
     */

وسوف اجرب الكود الخاص بك الان واكيد هيكون اسهل فى الفهم من هذا الكود الكبير

لديك حق فى موضوع الـ users هذا

لكن انا بعد ما صممت جعلت المستخدم يكون له اسم ورقم سرى يتم تعديلهم سويا

هو فى التصميم الان خطا لكن سوف اطوره ان شاء الله

لكن ف اعتقادى انه ليس لى التعرف على الـ id الخاص به بعد تغيير اسمه

فالاسم هو ما يعنيى

فانا لم اعطى المستخدم الزائر او المشرف احقيه تعديل اسمه فقط احقيه تعديل الرقم سرى فقط

connection = new DbService().getConnection();

فهذا مكتوب على حدا لكل الدوال التى موجود فى الـ UserServices Class

لكن كما قولت يمكن فعلها فى بدايه الـ Class واستخدامها مره واحده

سوف اعدلها ان شاء الله

اما بالنسبه لموضوع التقارير

انا جربت فيها شويه لكنى استصعبتها :cry: :cry:

جزاكم الله كل خير اخى الكريم

اسعدنى مرورك وتعليقاتك اكثر

اقتباس
لا اقلل من برنامجك ولكن اريد ان اساعدك على الخروج ببرنامج جيد

يعبر عنك كمبرمج ويشرفك كعضو فى الفريق العربى للبرمجة

ربنا يخليك يارب

وانا متقبل ذلك وشاكر جهدك فى تفحص هذا الكود

جزاك الله خيراا

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 2 يوليو 2010 في 23:00

Software Developer
Mahmoudkelany.com


 

#20
Mahmoud Kelany كتب:

اما بالنسبه لموضوع التقارير

انا جربت فيها شويه لكنى استصعبتها :cry: :cry:

جزاكم الله كل خير اخى الكريم

اسعدنى مرورك وتعليقاتك اكثر

ربنا يخليك يارب

وانا متقبل ذلك وشاكر جهدك فى تفحص هذا الكود

جزاك الله خيراا

شكرا لك

ولحل موضوع الاتجاه فى شريط القوائم

اتبع الخطوات التالية

1- افتح الفئة MainFrame فى نافذة التصميم Design

post-230456-070227600 1278101647_thumb.p

2- ثم حدد شريط القوائم واضغط عليه بالزر الايمن للفارة واختر properties

post-230456-094687700 1278101743_thumb.p

3- ثم اضغط على التبويب code

post-230456-019598000 1278101783_thumb.p

4- ثم اختر البند After-All-Set Code

post-230456-022557300 1278101854_thumb.p

5- واكتب به الكود التالى

mainMenuBar.applyComponentOrientation(java.awt.ComponentOrientation.RIGHT_TO_LEFT);

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

سلام

المرفقات
1.PNG2.PNG3.PNG4.PNG


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#21

انا عدلت الجدول بتاعت المستخدم ووضعت به id

لكن سوالى دلوقتى

انا لم الممستخدم يدخل ويكون هاسمح ليه يدخل ازاى ؟؟

ما يمكن فيه مستخدمين بنفس الاسم والرقم السرى

لكن فيه اختلاف فالـ id ؟

هيدخل باى واحد ؟؟؟

انا لم جربت دخل باخر واحد متسجل من الاتنين المتشابهين

فى الاسم والرقم السرى لكن اختلاف الصلاحيه والـid

ازاى احل هذا الخطا ؟؟؟

Software Developer
Mahmoudkelany.com


 

#22

عند تغيير اسم المستخدم ابحث عنه فى قاعدة البيانات قبل الحفظ

فاذا وجدته اظهر رسالة الى المستخدم تفيد بان اسمه الجديد موجود مسبقا ويجب عليه اختيار اسم اخر

العملية بسيطة جدا

وانظر الرد السابق لحل مشكلة شريط القوائم

سلام

تم تعديل هذه المشاركة بواسطة Oracle_Java في 3 يوليو 2010 في 12:18


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#23

للتأكد من اسم المستخدم قبل الحفظ

استخدم هذه الدالة

	public boolean usernameFound(String name){

    	try{
        	Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mobarklib");
        	Statement stmt=conn.createStatement();
        	String sql= "select username from users";
        	ResultSet rst=stmt.executeQuery(sql);

        	while(rst.next()){
            	if(rst.getString(1).equalsIgnoreCase(name)){
                	return true;
            	}
        	}

    	}catch(Exception e){
        	e.printStackTrace();
    	}

    	return false;

	}

ولا تجعل المستخدم يتعامل مع قاعدة البيانات بطريقة مباشرة

وكن دائما وسيطا بينه وبين قاعدة البيانات لتستطيع معالجة الاخطاء

تحياتى


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#24
Oracle_Java كتب:

للتأكد من اسم المستخدم قبل الحفظ

استخدم هذه الدالة

	public boolean usernameFound(String name){

    	try{
        	Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mobarklib");
        	Statement stmt=conn.createStatement();
        	String sql= "select username from users";
        	ResultSet rst=stmt.executeQuery(sql);

        	while(rst.next()){
            	if(rst.getString(1).equalsIgnoreCase(name)){
                	return true;
            	}
        	}

    	}catch(Exception e){
        	e.printStackTrace();
    	}

    	return false;

	}

ولا تجعل المستخدم يتعامل مع قاعدة البيانات بطريقة مباشرة

وكن دائما وسيطا بينه وبين قاعدة البيانات لتستطيع معالجة الاخطاء

تحياتى

جميل جدا

جزاك الله خيرا

فعلا اللى كان بيلخبطنى انى كنت عاوز اعملهم كلهم فى داله واحده

لكن كدا تمام

معلش ان شاء الله يكون اخر سؤال

دلوقتى فى الجدول

لو مسحت صف من الجدول بيكون الرقم بتاعه الـ، id يعنى بيكون محجوز عندى

انا عاوز اعيد ترتيب الـ id دا بحيث كل ما يمسح صف يعد ترتيب الـ id من الاول

يعنى مثلا بص للصوره دى كدا

post-217802-060913000 1278159971_thumb.p

هتلاقى ان لم حذفت الـصف الاول الـ id =1

فترتيب الجدول بدا من 2 ؟

انا عاوز اعيد ترتيب الـ id فى قاعده البيانات

هل ينفع ؟؟؟

وبعد كدا انزل النسخه النهائيه بعد توجيهات الاخوه الكرام

جزاكم الله خيرااا

المرفقات
Untitled.png

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 3 يوليو 2010 في 15:30

1

Software Developer
Mahmoudkelany.com


 

#25

لماذا تريد اعادة ترتيب الرقم ؟

مع انى لا ارى لها اى استخدام

هل شاهدت الرد الموجود فيه حل شريط القوائم؟ وهل نفع الحل معاك؟

سلام


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

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