2016-08-14 2 views
0

Я хочу добавить в таблицу SQLite список значений. Чтобы быть более точным, я хочу добавить его в колонку «Сток». Но у меня есть некоторые проблемы при запуске моего приложения. Вот моя база данных перед запуском приложения.Проблемы с SQLite в Python

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 дней. Такс, это помогло мне! –

Смежные вопросы