Мне нужно удалить записи БД, где значение может быть None.Я получаю свои значения из ListBox.Функция выглядит так:
def OnDelete(self, e):
num = self.list.GetItemCount()
for i in range(num):
if self.list.IsChecked(i):
itemValueList = []
for i2 in range(6):
item = self.list.GetItem(i, i2)
if item.GetText() == "None":
itemValueList.append("")
else:
itemValueList.append(item.GetText())
DBManager.DeleteEntry(itemValueList)
И функция в моем DBManager выглядит следующим образом:
def DeleteEntry(itemValueList):
# Open Database
conn = sqlite3.connect('Database.db')
c = conn.cursor()
# Delete a row of data
c.execute('delete from Database where Value1=? and Value2=? and Value3=? and Value4=? and Value5=? and Value6=?',
(itemValueList[0], itemValueList[1], itemValueList[2], itemValueList[3], itemValueList[4], itemValueList[5]))
# Save (commit) the changes
conn.commit()
Так что в моем случае Value5 и Value6 равны «None» или NULLв БД SQLite.Поэтому я установил строку, добавленную в itemValueList, равной "".Но это не работает.БД Entriy не удаляется.
Что мне нужно изменить, чтобы также удалялись записи, в которых некоторые столбцы не могут иметь значения?
Спасибо.
[РЕДАКТИРОВАТЬ]:
c.execute('delete from Database where isnull(Value1,"")=? and isnull(Value2,"")=? and isnull(Value3,"")=? and isnull(Value4,"")=? and isnull(Value5,"")=? and isnull(Value6,"")=?',
(itemValueList[0], itemValueList[1], itemValueList[2], itemValueList[3], itemValueList[4], itemValueList[5]))