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

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

بدأه mohamed husien في 21 مايو 2009 · 6 رد · 756 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخواني الأعزاء في الموقع الكريم .... احببت ان تشاركوني في مشكلتي والتي لااعلم لها حلا حتي الآن..

المشكلة تتلخص في التالي:

في اثناء كتابتي لبرنامج يقوم بتخزين معلومات عن اشخاص في قاعدة بينانات من النوع Access وبعد عمل الـ GUI للبرنامج ..بدأت بعمل الأتصال بقواعد البيانات كالتالي

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			Connection con = DriverManager.getConnection("jdbc:odbc:Project","", "");
			Statement stmt = con.createStatement(  );
							   String SQlText;
							   int ResultCode;

ثم جملة انشاء الجدول التي قمت بتحويلها الي تعليق بعد عمل Run اول مرة وانشأ الجدول في ملف الداتا بيز :

SQlText = "create table Contact ( FName char(10), LName char(10), Nname char(10), EMail char(10), Address char(10), PhoneNo char(10), Webpage char(10), Bday char(10) )";
			ResultCode = stmt.executeUpdate( SQlText );

ثم كتابة جملة insert التي سأقوم بأدخال البيانات الجديدة بها الي الداتا بيز وكانت الجملة كالتالي:

SQlText = "insert into Contact"+"(FName,LName,Nname,EMail,Address,PhoneNo,Webpage,Bday)"
					 +"values("+""+txtFirstName.getText()
					  +","+txtLastName.getText() 
					   +","+txtNickname.getText()
						+","+txtEMail.getText()
						 +","+txtAddress.getText()
						  +","+txtPhoneNo.getText()
						   +","+txtWebpage.getText()
							+","+txtBDay.getText()+")";

ثم تنفيذ جملة select :

ResultCode = stmt.executeUpdate( SQlText );

المهم ظهر لي هذا الخظأ عند التنفيذ :

SQL Exception: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2.
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2.
	at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
	at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
	at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
	at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
	at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:288)
	at OperationHandler.actionPerformed(DataBase.java:792)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:6038)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
	at java.awt.Component.processEvent(Component.java:5803)
	at java.awt.Container.processEvent(Container.java:2058)
	at java.awt.Component.dispatchEventImpl(Component.java:4410)
	at java.awt.Container.dispatchEventImpl(Container.java:2116)
	at java.awt.Component.dispatchEvent(Component.java:4240)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
	at java.awt.Container.dispatchEventImpl(Container.java:2102)
	at java.awt.Window.dispatchEventImpl(Window.java:2429)
	at java.awt.Component.dispatchEvent(Component.java:4240)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

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

مشكورون ولكم مني خالص التقدير ...

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

#2

جرب استخدام السطر هذا لل select :

Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from Contact");
#3

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

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

ولكم مني جزيل الشكر والتقدير

#4

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

جرب التالي


+"values('"+txtFirstName.getText()
+"', '"+txtLastName.getText()
+"', '"+txtNickname.getText()
+"', '"+txtEMail.getText()
+"', '"+txtAddress.getText()
+"', '"+txtPhoneNo.getText()
+"', '"+txtWebpage.getText()
+"', '"+txtBDay.getText()+"')";
SQlText = "insert into Contact"+"(FName,LName,Nname,EMail,Address,PhoneNo,Webpage,Bday) "

وتأكد من أن أسماء الأعمدة صحيحة

#5

اخي العزيز herch بارك الله فيكم ...ونفع بكم وبعلمكم

لقد جربتها ولم يظهر الخطأ ولله الحمد .... ولكني اريد ان اعرف تفسيرها ....

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

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

#6

الأعمدة التي كنت تضيف إليها المعلومات هي من نوع char(x)، يعني سلسلة حروف، لذلك يجب أن تكون بين مزدوجتين ( " ) أو ( ' )

قم ب

 System.out.println(SQlText);

للتي كانت تعطي الخطأ وللأخيرة، وسترى الفرق: الأولى ليس فيها المزدوجات

تم تعديل هذه المشاركة بواسطة herch في 23 مايو 2009 في 19:05

#7

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

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

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

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

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

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