TypeError: ? takes exactly 2 arguments (1 given)

Merhaba Arkadaşlar;
ufak bir veritabanı uygulaması denemek istedim fakat ufak bir hata alıyorum ve bir türlü düzeltemedim.Self ’ i parametre olarak görmesinin sebebi nedir ?

# -*- coding: utf-8 -*-
import sqlite3
class db:
    def __init__(self):
        print "Class DB Çalısıyor."
        tabloYap = """CREATE TABLE IF NOT EXISTS KR_BM_1700(Kod INT,Ad TEXT,Adet INT,Setup INT,ImalatSuresi INT)"""
        self.vt = sqlite3.connect("vt.db")
        self.im = self.vt.cursor()
        self.im.execute(tabloYap)

    def addValue(self,veriler):
        for veri in veriler:
            self.im.execute("""INSERT INTO personel VALUES(?, ?, ?)""", veri)
        #self.im.execute("INSERT INTO KR_BM_1700 (Kod,Ad,Adet,Setup,ImalatSuresi) VALUES(?,?,?,?,?)",(Kod, Ad, Adet, Setup, ImalatSuresi))
        self.vt.commit()
        self.vt.close()
    def printAll(self):
        tablOku="SELECT * FROM KR_BM_1700"
        self.im.execute(tablOku)
        data =self.im.fetchall()
        for i in data:
            print i

    addValue(veriler=(1000,"sda",15,20,30))
p=db()

Aldığım hata ise ;

Traceback (most recent call last):
  File "C:/Users/Mustafa/PycharmProjects/planning/db.py", line 3, in <module>
    class db:
  File "C:/Users/Mustafa/PycharmProjects/planning/db.py", line 24, in db
    addValue(veriler=(1000,"sda",15,20,30))
TypeError: addValue() takes exactly 2 arguments (1 given)

Merhaba, yazdığınız kodlarda ufak değişiklikler yapılması gerekiyor. Aşağıdaki kodlar, yazdığınız kodların son halidir:

# -*- coding: utf-8 -*-

import sqlite3


class Db:

    def __init__(self):
        print("Class DB Çalısıyor.")
        tabloyap = """CREATE TABLE IF NOT EXISTS KR_BM_1700(Kod INT, Ad TEXT, Adet INT, Setup INT, ImalatSuresi INT)"""
        self.vt = sqlite3.connect("vt.db")
        self.im = self.vt.cursor()
        self.im.execute(tabloyap)

    def addvalue(self, veriler):
        self.im.execute("""INSERT INTO KR_BM_1700 VALUES(?, ?, ?, ?, ?)""", veriler)
        self.vt.commit()
        self.vt.close()

    def printall(self):
        tabloku = "SELECT * FROM KR_BM_1700"
        self.im.execute(tabloku)
        data = self.im.fetchall()
        for i in data:
            print(i)


p = Db()
p.addvalue(veriler=(1000, "sda", 15, 20, 30))
1 Beğeni

Sağolun :slight_smile: