Faisal Al Zaedi نشر الأحد في 10:39 أرسل تقرير نشر الأحد في 10:39 لدي مشكلة وهي انه في هذا الكود اريد اضافة طالب الى جدول الطلاب تخرج لي رسالة انه اكتمل تسجيل الطالب لكن حينما اذهب الى قاعدة البيانات لا اشاهد البيانات مسجلة مع انني اقوم بتحديث القاعدة ولا تخرج ما هو السبب import sqlite3 conn = sqlite3.connect('school.db') cursor = conn.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS students( student_id INTEGER PRIMARY KEY, first_name TEXT, last_name TEXT, age INTEGER, grade TEXT, registration_date TEXT ) """) cursor.execute(""" CREATE TABLE IF NOT EXISTS lessons( student_id INTEGER, lesson_name TEXT, FOREIGN KEY(student_id) REFERENCES students(student_id) ) """) print("""To add a student, choose a.\n To update, choose u.\n To delete, choose d.\n To show, choose s. """) def Add_student(a): if a == 'a': student_id = int(input('Enter student id :')) first_name = str(input('Eenter student first name :')) last_name = str(input('Enter student last name :')) student_age = int(input('Enter student age :')) student_grade = str(input('Ente student grade :')) registration_date = str(input('Enter registion date :')) student_data=(student_id,first_name,last_name,student_age,student_grade,registration_date) cursor.execute(""" INSERT INTO students (student_id, first_name, last_name, age, grade, registration_date) VALUES (?,?,?,?,?,?) """,student_data) conn.commit() print("Student added successfully!") choice = input("Enter your choice: ") Add_student(choice) conn.close() 1 اقتباس
0 محمد_عاطف نشر الأحد في 10:57 أرسل تقرير نشر الأحد في 10:57 لقد قمت بتجربة الكود وهو يعمل دون أى مشكلة ويتم إضافة الطلاب في قاعدة البيانات وبعد تحديثها تظهر في الجدول : تأكد من أنك تقوم بفتح ملف قاعدة البيانات الصحيح . حيث الملف الصحيح هو الملف school.db بجوار ملف الكود لديك. اقتباس
0 Faisal Al Zaedi نشر الاثنين في 06:03 الكاتب أرسل تقرير نشر الاثنين في 06:03 بتاريخ 19 ساعة قال محمد_عاطف: لقد قمت بتجربة الكود وهو يعمل دون أى مشكلة ويتم إضافة الطلاب في قاعدة البيانات وبعد تحديثها تظهر في الجدول : تأكد من أنك تقوم بفتح ملف قاعدة البيانات الصحيح . حيث الملف الصحيح هو الملف school.db بجوار ملف الكود لديك. لقد قمت بفعل كل شي لكن لا تظهر البيانات وهذا الخطاء يخرج لي عند اضافة طالب cursor.execute(""" ~~~~~~~~~~~~~~^^^^ INSERT INTO students (student_id, first_name, last_name, age, grade, registration_date) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ VALUES (?,?,?,?,?,?) ^^^^^^^^^^^^^^^^^^^^ """,student_data) ^^^^^^^^^^^^^^^^^ 1 اقتباس
0 Mustafa Suleiman نشر منذ 14 ساعة أرسل تقرير نشر منذ 14 ساعة بتاريخ On 1/12/2025 at 08:03 قال Faisal Al Zaedi: لقد قمت بفعل كل شي لكن لا تظهر البيانات وهذا الخطاء يخرج لي عند اضافة طالب cursor.execute(""" ~~~~~~~~~~~~~~^^^^ INSERT INTO students (student_id, first_name, last_name, age, grade, registration_date) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ VALUES (?,?,?,?,?,?) ^^^^^^^^^^^^^^^^^^^^ """,student_data) ^^^^^^^^^^^^^^^^^ student_id هو PRIMARY KEY، بالتالي غير مسموح بتكرار الرقم، ولو حاولت إضافة طالب برقم 1 وكان هناك طالب سابق بنفس الرقم، ستتوقف قاعدة البيانات عن العمل ويظهر خطأ IntegrityError. الأفضل هو جعل قاعدة البيانات تقوم بترقيم الطلاب تلقائيًا من خلال تفعيل AUTOINCREMENT بدلاً من إدخال الرقم بنفسك، ولو أردت كتاتبه بشكل يدوي فيجب معالجة الخطأ من خلال try except لإظهار أنّ الرقم مُكرر. عامًة إليك الكود بالإعتماد على تفعيل AUTOINCREMENT في قاعدة البيانات ويجب عليك حذف ملف قاعدة البيانات القديم school.db من جهازك أولاً، ثم شغل الكود الجديد ليقوم بإنشاء الجدول بالطريقة الصحيحة. import sqlite3 conn = sqlite3.connect('school.db') cursor = conn.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS students( student_id INTEGER PRIMARY KEY AUTOINCREMENT, first_name TEXT, last_name TEXT, age INTEGER, grade TEXT, registration_date TEXT ) """) cursor.execute(""" CREATE TABLE IF NOT EXISTS lessons( student_id INTEGER, lesson_name TEXT, FOREIGN KEY(student_id) REFERENCES students(student_id) ) """) print("""To add a student, choose a.\n To update, choose u.\n To delete, choose d.\n To show, choose s. """) def Add_student(a): if a == 'a': first_name = str(input('Enter student first name: ')) last_name = str(input('Enter student last name: ')) student_age = int(input('Enter student age: ')) student_grade = str(input('Enter student grade: ')) registration_date = str(input('Enter registration date: ')) student_data = (first_name, last_name, student_age, student_grade, registration_date) try: cursor.execute(""" INSERT INTO students (first_name, last_name, age, grade, registration_date) VALUES (?,?,?,?,?) """, student_data) conn.commit() print(f"Student added successfully! The new Student ID is: {cursor.lastrowid}") except Exception as e: print(f"Error: {e}") choice = input("Enter your choice: ") Add_student(choice) conn.close() اقتباس
السؤال
Faisal Al Zaedi
لدي مشكلة وهي انه في هذا الكود اريد اضافة طالب الى جدول الطلاب تخرج لي رسالة انه اكتمل تسجيل الطالب لكن حينما اذهب الى قاعدة البيانات لا اشاهد البيانات مسجلة مع انني اقوم بتحديث القاعدة ولا تخرج ما هو السبب
import sqlite3
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS students(
student_id INTEGER PRIMARY KEY,
first_name TEXT,
last_name TEXT,
age INTEGER,
grade TEXT,
registration_date TEXT
)
""")
cursor.execute("""
CREATE TABLE IF NOT EXISTS lessons(
student_id INTEGER,
lesson_name TEXT,
FOREIGN KEY(student_id) REFERENCES students(student_id)
)
""")
print("""To add a student, choose a.\n
To update, choose u.\n
To delete, choose d.\n
To show, choose s.
""")
def Add_student(a):
if a == 'a':
student_id = int(input('Enter student id :'))
first_name = str(input('Eenter student first name :'))
last_name = str(input('Enter student last name :'))
student_age = int(input('Enter student age :'))
student_grade = str(input('Ente student grade :'))
registration_date = str(input('Enter registion date :'))
student_data=(student_id,first_name,last_name,student_age,student_grade,registration_date)
cursor.execute("""
INSERT INTO students (student_id, first_name, last_name, age, grade, registration_date)
VALUES (?,?,?,?,?,?)
""",student_data)
conn.commit()
print("Student added successfully!")
choice = input("Enter your choice: ")
Add_student(choice)
conn.close()
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.