Omar Mhmd نشر 7 فبراير أرسل تقرير نشر 7 فبراير (معدل) صنعت برنامج بمكتبة pyqt5 و انشأت قاعدة بيانات بمكتبة sqlite3 صنعت حقل ادخال و زر وصنعت اداة للزر وظيفتها انه عند الضغط على الزر الحصول على القيمة من حقل الادخال و اضافتها فى الجدول المشكلة هى عند الضغط على الزر ينطفئ البرنامج ها هو الكود ارجو الحل و الشكر لم ساعدنى #استدعاء المكتبات from PyQt5 import QtCore, QtGui, QtWidgets import sys import sqlite3 #انشاء البرنامج app = QtWidgets.QApplication(sys.argv) #انشاء النافذة w = QtWidgets.QWidget() #حقول الادخال e1 = QtWidgets.QLineEdit(w) e1.move(200,150) e1.resize(400,40) e1.setStyleSheet("background-color: white ;font-size: 20px") #الازرار b1 = QtWidgets.QPushButton("اضافة", w) b1.move(40,40) b1.resize(400,50) b1.setStyleSheet("background-color: yellow ;font-size: 24px") # انشاء قاعدة بيانات db = sqlite3.connect("name.db") c = db.cursor() c.execute("CREATE TABLE names(name TEXT)") #الحصول على القيمة من حقول الادخال def add(): a1 = e1.text() e1.clear() cute("INSERT INTO names(name, age, add, ph) VALUES(?)",(a1)) db.commit() b1.clicked.connect(add) db.close() w.show() app.exec_() تم التعديل في 7 فبراير بواسطة Mustafa Suleiman تعديل عنوان السؤال ونص السؤال 1 اقتباس
0 ياسر مسكين نشر 7 فبراير أرسل تقرير نشر 7 فبراير يبدو أن هنالك بضعة أخطاء في الكود الذي أرفقته، فيجب استخدام طريقة ()execute لتنفيذ استعلام SQL لإدخال القيم إلى الجدول، وعند استخدامها للإدخال يجب توفير قائمة من القيم التي تريد إدخالها، واستخدامها يكون مع إستعلام SQL لإنشاء الجدول. لقد قمت بتصحيحه وهذا هو الكود الصحيح: #استدعاء المكتبات from PyQt5 import QtCore, QtGui, QtWidgets import sys import sqlite3 #انشاء البرنامج app = QtWidgets.QApplication(sys.argv) #انشاء النافذة w = QtWidgets.QWidget() #حقول الادخال e1 = QtWidgets.QLineEdit(w) e1.move(200, 150) e1.resize(400, 40) e1.setStyleSheet("background-color: white ;font-size: 20px") #الازرار b1 = QtWidgets.QPushButton("اضافة", w) b1.move(40, 40) b1.resize(400, 50) b1.setStyleSheet("background-color: yellow ;font-size: 24px") # انشاء قاعدة بيانات والجدول db = sqlite3.connect("name.db") c = db.cursor() c.execute("CREATE TABLE IF NOT EXISTS names(name TEXT)") #الحصول على القيمة من حقول الادخال واضافتها الى الجدول def add(): a1 = e1.text() e1.clear() c.execute("INSERT INTO names(name) VALUES(?)", (a1,)) db.commit() b1.clicked.connect(add) db.close() w.show() app.exec_() بحيث قمت بتعديل الجزء الذي يضيف القيمة إلى الجدول بحيث يكون في الشكل الصحيح، كما قمت للتأكد من أن الجدول موجود بإضافة جملة: 'CREATE TABLE IF NOT EXISTS' أو يتم إنشاؤه إذا لم يكن موجودا بالفعل. اقتباس
0 Mustafa Suleiman نشر 7 فبراير أرسل تقرير نشر 7 فبراير المشكلة الرئيسية هي في دالة الإضافة (add) حيث أنها تحتوي على عدة أخطاء: تحتاج إلى استدعاء الدالة execute بدلاً من cute لتنفيذ استعلام SQL. عند إجراء عملية الإدخال في قاعدة البيانات، يجب عليك توفير قيم لجميع الحقول في الجدول، وعلى ما أعتقد لديك حقل واحد فقط name، ولكن قمت بتضمين age و add و ph في الإدراج بدون توفير قيم لها، لذا، عليك إما تعديل جدول قاعدة البيانات لتناسب الحقول التي تحاول إضافتها، أو إزالة تلك الحقول من الإدراج. تحتاج إلى تعيين قيمة واحدة أو أكثر لحقول الإدراج، ولكن أنت أعطيتها قيمة واحدة فقط، قم بتعديل الاستعلام ليتضمن قيمة واحدة لحقل name فقط. لضمان إغلاق قاعدة البيانات بشكل صحيح، عليك نقل db.close() إلى نهاية دالة الإضافة بدلاً من وضعها في النهاية العامة للبرنامج. from PyQt5 import QtCore, QtGui, QtWidgets import sys import sqlite3 app = QtWidgets.QApplication(sys.argv) w = QtWidgets.QWidget() e1 = QtWidgets.QLineEdit(w) e1.move(200,150) e1.resize(400,40) e1.setStyleSheet("background-color: white ;font-size: 20px") b1 = QtWidgets.QPushButton("اضافة", w) b1.move(40,40) b1.resize(400,50) b1.setStyleSheet("background-color: yellow ;font-size: 24px") db = sqlite3.connect("name.db") c = db.cursor() c.execute("CREATE TABLE IF NOT EXISTS names(name TEXT)") def add(): a1 = e1.text() e1.clear() c.execute("INSERT INTO names(name) VALUES(?)", (a1,)) db.commit() db.close() b1.clicked.connect(add) w.show() app.exec_() اقتباس
0 Taha Khaled2 نشر 7 فبراير أرسل تقرير نشر 7 فبراير (معدل) يوجد بعض المشاكل في الكود الخاص بك أولًا، انت تستخدم دالة "cute" بدلاً من "execute" لتنفيذ استعلام SQL في قاعدة البيانات. الدالة الصحيحة هي "execute". ثانيًا، عند فتح وإغلاق قاعدة البيانات داخل البرنامج، يفضل استخدام معرف "with" لضمان إغلاق قاعدة البيانات بشكل صحيح بعد الانتهاء من الاستخدام. ثالثًا، ينبغي عليك تحديد الأعمدة التي تريد إدراج القيم فيها عند استخدام الاستعلام "INSERT INTO". هذه مثال للكود بعد تصحيح الاخطاء وحل المشكله # استدعاء المكتبات from PyQt5 import QtCore, QtGui, QtWidgets import sys import sqlite3 # انشاء البرنامج app = QtWidgets.QApplication(sys.argv) # انشاء النافذة w = QtWidgets.QWidget() # حقول الادخال e1 = QtWidgets.QLineEdit(w) e1.move(200, 150) e1.resize(400, 40) e1.setStyleSheet("background-color: white ;font-size: 20px") # الازرار b1 = QtWidgets.QPushButton("اضافة", w) b1.move(40, 40) b1.resize(400, 50) b1.setStyleSheet("background-color: yellow ;font-size: 24px") # انشاء قاعدة البيانات والجدول with sqlite3.connect("name.db") as db: c = db.cursor() c.execute("CREATE TABLE IF NOT EXISTS names(name TEXT)") # الحصول على القيمة من حقول الادخال واضافتها الى الجدول def add(): name = e1.text() with sqlite3.connect("name.db") as db: c = db.cursor() c.execute("INSERT INTO names(name) VALUES(?)", (name,)) db.commit() e1.clear() b1.clicked.connect(add) w.show() app.exec_() تم التعديل في 7 فبراير بواسطة Taha Khalid اقتباس
السؤال
Omar Mhmd
صنعت برنامج بمكتبة pyqt5 و انشأت قاعدة بيانات بمكتبة sqlite3
صنعت حقل ادخال و زر وصنعت اداة للزر وظيفتها انه عند الضغط على الزر الحصول على القيمة من حقل الادخال و اضافتها فى الجدول
المشكلة هى عند الضغط على الزر ينطفئ البرنامج
ها هو الكود ارجو الحل
و الشكر لم ساعدنى
تعديل عنوان السؤال ونص السؤال
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.