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

ما الخطأ في هذا الكود؟

بدأه JavaPorgrammer في 15 ديسمبر 2010 · 4 رد · 495 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أرجو النظر في هذا الكود :

public boolean insertC_user(customer c){
    Connection con;
    boolean done = false;
try{

con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","root","root");


//Statement s2 = con.createStatement();

String sql = "insert into customer values(?,?)";
PreparedStatement s = con.prepareStatement(sql);
s.setString(1, c.getUsername());
s.setString(2, c.getPassword());
s.executeUpdate(sql);
done =true;

}
    catch(SQLException e)
    {
        System.out.println(e.toString());
    }
    return done;
}

فورم لإدخال بيانات إلى قاعدة البيانات :

<form method="POST" action="reg.jsp">
                            <table width="100%" border="0" cellspacing="2" cellpadding="2">
  <tr>
    <td width="14%">user name : </td>
    <td width="86%"> <input type="text" name="username" value="" size="50" /></td>
  </tr>
  <tr>
    <td>password : </td>
    <td> <input type="password" name="password" value="" size="50" /></td>
  </tr>
  <tr>
    <td> </td>
    <td><input type="hidden" name="action" value="check_user" /><input type="submit" name="Submit" value="Continue" /><input type="reset" value="Reset" /></td>

  </tr>
                            </table>
                                </form>

الصفحة الهدف :

 <jsp:useBean id="db" scope="page" class="cn.DBbean" /> <jsp:useBean id="cus" scope="request" class="cn.customer" />
        <% String username = request.getParameter("username");
           String password = request.getParameter("password");
           cus.setUsername(username);
           cus.setPassword(password);
           //String action = (String) session.getAttribute("action");
           if(db.insertC_user(cus)){
           out.println(username+"\n"+password);}
           %>

النتيجة لا شيء!! ولا تدخل البيانات!!

الاستثناء:" بعد تنفيذه : not all variables bound "

أرجو المساعدة

تم تعديل هذه المشاركة بواسطة JavaPorgrammer في 15 ديسمبر 2010 في 21:56

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#2

اخى العزيز

لو نظرت الى بناء الجدول customer ستجده على الارجح يحتوى على اكثر من حقلين

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

جرب تعديل الاستعلام ليصبح كالتالى

String sql = "insert into customer(customer_name,password) values(?,?)";

او غير اسماء الحقول بالاسماء الموجودة فى جدولك

بالتوفيق


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

الأنفال ۳۳                                  
 

#3

شاكر لك أخي على تفاعلك..

صارت المشكلة في دالة تنفيذ الاستعلام ، بعد تحويلها إلى : executeUpdate من دون parameter

:blush:

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#4

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


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

الأنفال ۳۳                                  
 

#5

أخي الله يرضى عليك ويسعدك .. تم حل المشكلة .. :blush:

الخطأ أني نسيت جملة الاستعلام داخل الدالة : executeUpdate ، ستفهم قصدي إذا اطلعت على الكود..

عدلت في الدالة:

String sql = "insert into customer values(?,?)";
PreparedStatement s = con.prepareStatement(sql);
s.setString(1, c.getUsername());
s.setString(2, c.getPassword());
s.executeUpdate(); //I deleted parameter of this function
done =true;

وكانت رسالة الخطأ من "أوراكل" :

not all variables bound

تحية عطرة لشخصك الكريم ، وشاكر لك تفاعلك معي أسعدك الله .

تم تعديل هذه المشاركة بواسطة JavaPorgrammer في 16 ديسمبر 2010 في 19:34

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

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