یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دوره‌ها

استفاده از تخفیف‌ها
ثانیه
دقیقه
ساعت
روز
MDRA.pyprogramer
3 سال پیش توسط MDRA.pyprogramer مطرح شد
4 پاسخ

بسته نشدن sql در پایتون

من با یک تابع نوشتم که :
با sqlite در پایتون یک چیزی رو به تیبلم ادد کنه و بعد با conn.ommit اون سیو کنه و بعد هم با conn.close اون رو میبندم ولی بسته نمیشه
کسی اگر میتونه کمک کنه؟؟اینم عکس ارورم


ثبت پرسش جدید
MDRA.pyprogramer
تخصص : پایتون
@m1.a4.drthe13 3 سال پیش مطرح شد
0
# python

import sqlite3 as db
from datetime import datetime
from sqlite3.dbapi2 import connect

conn = db.connect('spent.db')
c = conn.cursor()

def init():

initialize a new table to store date

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

عبدالرحمان کیانی
تخصص : Backend developer
@abdolrahman 3 سال پیش مطرح شد
0

ارور که میگه "نمی توانید تغییری روی دیتابیس بسته شده انجام دهید"
احتمالا اول بستید بعد سعی کردید اد کنید


MDRA.pyprogramer
تخصص : پایتون
@m1.a4.drthe13 3 سال پیش مطرح شد
0

نه من به تابع گفتم که یک چنتا ولیو بگیره و اونا رو بریزه تو تیبل و بعد کامیت کنه و بعد کلوز


عبدالرحمان کیانی
تخصص : Backend developer
@abdolrahman 3 سال پیش مطرح شد
0

میشه کدتون رو بفرستین که ببینم چرا اینجوری میشه؟


MDRA.pyprogramer
تخصص : پایتون
@m1.a4.drthe13 3 سال پیش مطرح شد
0
# python

import sqlite3 as db
from datetime import datetime
from sqlite3.dbapi2 import connect

conn = db.connect('spent.db')
c = conn.cursor()

def init():

initialize a new table to store date

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

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام