2016-08-14 5 views
0

SQLiteテーブルに値のリストを追加したいと思います。より正確にするために、Stock列に追加したいと思います。しかし、私はアプリを実行するときにいくつかの問題があります。ここでは、アプリケーションを実行する前の私のデータベースです。PythonでSQLiteに問題がある

enter image description here

そして、私は私のプログラムの開発を実行しようとしたとき、私は間違った列のデータを得ました。あなただけのデータベースが内部であなたのためにそれをやってみましょう、列の値を変更したい場合はここに私のコード

def count(ui): 
    i = [] 
    z = 0 
    v = 0 
    if ui.comboBox.currentText() == '50НР4': 
     cur.execute("""SELECT Part, Stock FROM Details WHERE Pumps = '50НР4' OR Pumps = '50НР4/6'""") 
    elif ui.comboBox.currentText() == '50НР6.3': 
     cur.execute("""SELECT Part, Stock FROM Details WHERE Pumps = '50НР6' OR Pumps = '50НР4/6'""") 
    for row, form in enumerate(cur): 
     i.append(form[1]) 
    for element in i: 
     i[z] -= 1 
     z += 1 

    if ui.comboBox.currentText() == '50НР4': 
     z = 0 
     for elem in i: 
      cur.execute("""UPDATE Details SET Stock = (?) WHERE Pumps = '50НР4' OR Pumps = '50НР4/6' AND ROWID = (?)""", 
         [i[z], v]) 
      v += 1 
      z += 1 
    elif ui.comboBox.currentText() == '50НР6.3': 
     z = 0 
     for elem in i: 
      cur.execute("""UPDATE Details SET Stock = (?) WHERE Pumps = '50НР6' OR Pumps = '50НР4/6' AND ROWID = (?)""", 
         [i[z], v]) 
      v += 1 
      z += 1 
    elif ui.comboBox.currentText() == '50НР4' or ui.comboBox.currentText() == '50НР6': 
     z = 0 
     for elem in i: 
      cur.execute("""UPDATE Details SET Stock = (?) WHERE Pumps = '50НР4/6' AND ROWID = (?)""", [i[z], v]) 
      v += 1 
      z += 1 
    print(i) 
    con.commit() 

答えて

1

です:

def count(ui): 
    if ui.comboBox.currentText() == '50НР4': 
     condition = "Pumps = '50НР4' OR Pumps = '50НР4/6'" 
    elif ui.comboBox.currentText() == '50НР6.3': 
     condition = "Pumps = '50НР6' OR Pumps = '50НР4/6'" 
    else: 
     condition = "Pumps = '50НР4/6'" 
    cur.execute("""UPDATE Details SET Stock = Stock - 1 WHERE %s""" % condition) 
    con.commit() 
+0

ああ、おかげで多くのことを...私はPythonで新しいですこれは私の最初のアプリケーションです。そして、私はこの仕事を約3日間考えていました。タクス、これは私を助けた! –