من با یک تابع نوشتم که :
با sqlite در پایتون یک چیزی رو به تیبلم ادد کنه و بعد با conn.ommit اون سیو کنه و بعد هم با conn.close اون رو میبندم ولی بسته نمیشه
کسی اگر میتونه کمک کنه؟؟
# python
import sqlite3 as db
from datetime import datetime
from sqlite3.dbapi2 import connect
conn = db.connect('spent.db')
c = conn.cursor()
def init():
c.execute('''CREATE TABLE IF NOT EXISTS expenses (
amount REAL,
category TEXT COLLATE NOCASE,
message TEXT,
date TEXT
)''')
conn.commit()
conn.close()
def add(amount , category , message = ''):
# add new items to database
date = str(datetime.now().strftime('%Y - %m - %d | %H:%M'))
c.execute('INSERT INTO expenses VALUES (:amount , :category , :message , :date)' , {'amount' : amount , 'category' : category , 'message' : message , 'date' : date})
conn.commit()
conn.close()
def show(category = None):
# show the all data in database
if category:
c.execute('SELECT * FROM expenses WHERE category = (:category )' , {'category' : category})
resulte = c.fetchall()
c.execute('SELECT sum(amount) FROM expenses WHERE category = (:category )' , {'category' : category})
total_amount = c.fetchone()[0]
else :
c.execute('SELECT * FROM expenses')
resulte = c.fetchall
c.execute('SELECT sum(amount) FROM expenses')
total_amount = c.fetchone()[0]
conn.close()
return total_amount , resulteارور که میگه "نمی توانید تغییری روی دیتابیس بسته شده انجام دهید"
احتمالا اول بستید بعد سعی کردید اد کنید
نه من به تابع گفتم که یک چنتا ولیو بگیره و اونا رو بریزه تو تیبل و بعد کامیت کنه و بعد کلوز
# python
import sqlite3 as db
from datetime import datetime
from sqlite3.dbapi2 import connect
conn = db.connect('spent.db')
c = conn.cursor()
def init():
c.execute('''CREATE TABLE IF NOT EXISTS expenses (
amount REAL,
category TEXT COLLATE NOCASE,
message TEXT,
date TEXT
)''')
conn.commit()
conn.close()
def add(amount , category , message = ''):
# add new items to database
date = str(datetime.now().strftime('%Y - %m - %d | %H:%M'))
c.execute('INSERT INTO expenses VALUES (:amount , :category , :message , :date)' , {'amount' : amount , 'category' : category , 'message' : message , 'date' : date})
conn.commit()
conn.close()
def show(category = None):
# show the all data in database
if category:
c.execute('SELECT * FROM expenses WHERE category = (:category )' , {'category' : category})
resulte = c.fetchall()
c.execute('SELECT sum(amount) FROM expenses WHERE category = (:category )' , {'category' : category})
total_amount = c.fetchone()[0]
else :
c.execute('SELECT * FROM expenses')
resulte = c.fetchall
c.execute('SELECT sum(amount) FROM expenses')
total_amount = c.fetchone()[0]
conn.close()
return total_amount , resulte