Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.1k views
in Technique[技术] by (71.8m points)

how to add multiple records in a database using sqlite in python?

I am trying to add values from a listwidget which is in this case is named as listPlayerschosen. I tried two ways of doing it:

1.) I first took all the items of it in to a list . and then tried inserting them in database using executemany program gives an exception just after executemany statement

def saveteam(self):
    listMain = []
    try:
        for p in range(self.listPlayerschosen.count()):
            pname = self.listPlayerschosen.item(p).text()

            cursorfc.execute("SELECT value FROM stats WHERE player='" + pname + "';")
            tup = cursorfc.fetchone()
            tname = self.teamName.text()
            playervalue = (''.join(map(str, tup)))#changing tuple to string
            listInsert = (tname, pname, playervalue)
            listMain.append(listInsert)
        print(listMain)

        print('hi')
        cursorfc.executemany("INSERT INTO teams VALUES( ?, ?, ?);", listMain)
        print('hi')
        fcdb.commit()
        print('hi')
    except:
        print('exception')

2.) Before trying this I was doing this but I don't why execute only adds one element to the table when I use execute

def saveteam(self):
    tname = self.teamName.text()

    for i in range(self.listPlayerschosen.count()):
        if self.listPlayerschosen.item(i) == None:
            continue
        else:
            pname = self.listPlayerschosen.item(i).text()
            cursorfc.execute("SELECT value FROM stats WHERE player='" + pname + "';")
            print('0')
            value = (''.join(map(str, cursorfc.fetchone())))#changing tuple to string
            print('1')
            cursorfc.execute("INSERT INTO teams VALUES ('{}','{}','{}');".format(tname, pname, value))
            print('2')
            fcdb.commit()

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神解答

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...