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

Updata Row In Jtable

بدأه Tigger_it في 2 أغسطس 2009 · 13 رد · 680 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عملت قبل فتره مشروع Phonebook وكانت في مشاكل فيه وحليتها بمساعدتكم الي ضايل علي اخر شي في البرنامج فكرت كثير اعملها بس عجزت

وهي كيف اعمل update row معين في الجدول الي بعرض فيه البيانات والتغدير والتعديل هاد يصير علي البيانات في database

ياريت الي بعرف يساعدنى ومشكور كثير الكم :)

ab66i830gh93.gif

i25sctz8qnls.jpg

#2

أين تجد مشكل؟؟ هل في التعديل في قاعدة البيانات أم استرجاع المعطيات المعدلة في JTable أم في الevent الذي يجب استعماله

#3

في التعديل في قاعده البيانات انا بدي اعدل علي البيانات المعروضه من نفس الجدول الي معروضه فيه البيانات بحيث لما اعمل event علي الزر يعمل التحديث علي الجدول الي بعرض فيه البيانات والداتا بيس

ab66i830gh93.gif

i25sctz8qnls.jpg

#4

يكفي أن تسترجع المعطيات من السطر الذي تم تعديله وتعمل update في قاعدة البيانات

ما الذي يطرح مشكل؟؟

تم تعديل هذه المشاركة بواسطة herch في 2 أغسطس 2009 في 23:51

#5

برضو ما وصلت الفكره قصدي انو مثلا امسك صف معين مثل الصف الرابع في ال JTable الي فيها البيانات عدلت مباشره من الصف هاد كيف بدي انقل التغير الي عملتو علي الداتا بيس هي قصدي

تم تعديل هذه المشاركة بواسطة Tigger_it في 3 أغسطس 2009 في 01:20

ab66i830gh93.gif

i25sctz8qnls.jpg

#6

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

يعني كل شي لحالو

طيب ليش

اربطون واخلص من القصة مو احسن الك !

#7

فكرت هيك انا shado وعملت زي هيك :

   public void tableChanged(TableModelEvent e)  
 {  
 if (e.getType() == TableModelEvent.UPDATE)  
  {  
int col=table.getSelectedColumn();  
int row=table.getSelectedRow();  


  try {  
	Class.forName("com.mysql.jdbc.Driver");  
		 String url = "jdbc:mysql://localhost:3306/Java?requireSSL=false&useUnicode=true&characterEncoding=utf8";  
	 Connection c = DriverManager.getConnection(url, "root", "");  
		 PreparedStatement ps = c.prepareStatement("UPDATE Phone SET id = ? ,name = ?,phone = ?,mobile = ?,email = ? ,address = ? WHERE id = "+row);  

			 ps.setString(1, (String) table.getValueAt(row, 1));  
		   ps.setInt(2, (Integer) table.getValueAt(row, 2));  
			ps.setInt(3, (Integer) table.getValueAt(row, 3));  
	ps.setString(4, (String) table.getValueAt(row, 4));  
	ps.setString(5, (String) table.getValueAt(row, 5));  

			 ps.executeUpdate();   
			 ps.close();  
		 c.close();  

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

الداله فيها مشكله في ال casting الموجود هنا :

			 ps.setString(1, (String) table.getValueAt(row, 1));  
		   ps.setInt(2, (Integer) table.getValueAt(row, 2));  
			ps.setInt(3, (Integer) table.getValueAt(row, 3));  
	ps.setString(4, (String) table.getValueAt(row, 4));  
	ps.setString(5, (String) table.getValueAt(row, 5));

شو المشكله في الكود ؟

تم تعديل هذه المشاركة بواسطة Tigger_it في 3 أغسطس 2009 في 10:01

ab66i830gh93.gif

i25sctz8qnls.jpg

#8

ممكن تعطينا رسالة الخطأ

#9

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer

ab66i830gh93.gif

i25sctz8qnls.jpg

#10

جرب تغيير السطر الثاني والثالث واستعمال Integer.parseInt


ps.setInt(3, Integer.parseInt(table.getValueAt(row, 3).toString()));
ps.setInt(2, Integer.parseInt(table.getValueAt(row, 2).toString()));

تم تعديل هذه المشاركة بواسطة herch في 3 أغسطس 2009 في 15:34

#11

خلصنا من ال Exception الي راح اجي واحد جديد :

java.sql.SQLException: No value specified for parameter 6

ab66i830gh93.gif

i25sctz8qnls.jpg

#12

غير الsql query إلى التالي

		 PreparedStatement ps = c.prepareStatement("UPDATE Phone SET name = ?,phone = ?,mobile = ?,email = ? ,address = ? WHERE id =  "+row);

تم حذف id = ? , لأنك أولا لم تكن تعطي قيمته بsetInt لأنك كنت تبتدأ ب

ps.setString(1, (String) table.getValueAt(row, 1));

يعني كنت تعتبر أن الparameter الأول هو name وليس id

وثانيا لا يجب تعديل الid مع العلم أن الشرط يعتمد عليه، والid غالبا يكون فريد لذلك قبل تعديله يجب التأكد أنه لا يوجد id آخر له نفس القيمة

#13

بالفعل كانت المشكله في id رفعتو من جمله update وزبط الحمد الله :)

مشكور كثير اخ herch لمساعدتك الي وممكن تتعتبرنى تلميذك من هان ورايك :)

تم تعديل هذه المشاركة بواسطة Tigger_it في 3 أغسطس 2009 في 17:42

ab66i830gh93.gif

i25sctz8qnls.jpg

#14

-----

تم تعديل هذه المشاركة بواسطة علاء الصالحي في 3 أغسطس 2009 في 17:50 — السبب: نفس رد الأخ herch

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

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