2016-12-21 5 views
0

Dies ist mein Code:überprüfen, ob sqlite3 Python Daten vorhanden

import sqlite3 

def delete_product(data): 
    with sqlite3.connect("main.db") as db: 
     cursor = db.cursor() 
     sql = "delete from Products where Name=?" 
     if cursor.rowcount <= 0: 
      print("The product {0} does not exist" .format(name)) 
     if cursor.rowcount > 0: 
      cursor.execute(sql,data) 
      db.commit() 
      print("The product {0} has been delted successfully" .format(name)) 

if __name__ == "__main__": 
    name=input("Enter the name of the product you want to delete: >>") 
    data=(name,) 
    delete_product(data) 

ich, wenn der Name tatsächlich in der Datenbank vorhanden ist überprüfen will oder nicht, ob es dann löschen existiert. Wenn es nicht existiert, dann drucke einen Fehler aus. kann mir jemand helfen zu erkennen, wo das Problem

+0

Sie sollten vollständige Fehlermeldung posten. Es wird helfen, das Problem zu identifizieren. – beeftendon

+0

Sie sollten wahrscheinlich angeben, welche Ausgabe Sie erhalten und warum sie unerwartet ist. –

+0

@beefendon gibt es keine Fehlermeldung, es ist nur die Prüfung, ob vorhanden Bit funktioniert nicht –

Antwort

1

In Bezug auf Cursor ist der Python sqlite3 documentation heißt es: Wie

von dem DB-API Spec Python erforderlich, ist das rowcount Attribut“-1 falls kein executeXX() hat auf dem Cursor ausgeführt wurde ...

Sie definieren die Cursorvariable, ohne einen Ausführungsbefehl auszuführen. Somit wird cursor.rowcount -1 sein, und cursor.rowcount <= 0 wird immer wahr sein.

Vielleicht soll die Zeile

cursor.execute(sql,data) 

vor dem ersten cursor.rowcount Überprüfung vergeben?

+0

das half und mein Problem behoben, danke –

Verwandte Themen