import sqlite3
#con=sqlite3.connect('D:\\form1.db')
#cur=con.cursor()
#cur.execute('CREATE TABLE students(name TEXT PRIMARY KEY,number INTEGER,class1 TEXT)')
import tkinter as tk
window=tk.Tk()
window.title('data')
window.geometry('500x300')
name1=tk.StringVar()
name=tk.Entry(textvariable=name1)
name.pack()
number1=tk.StringVar()
number=tk.Entry(textvariable=number1)
number.pack()
class_1=tk.StringVar()
class_=tk.Entry(textvariable=class_1)
class_.pack()
def put_in():
a=name.get()
b=number.get()
c=class_.get()
con=sqlite3.connect('D:\\form1.db')
cur=conn.cursor()
info=[(a,b,c)]
cur.executemany("INSERT INTO students(name,number,class1) VALUES(?,?,?)",info)
con.commit()
con.close()
bt1=tk.Button(text='提交',command=put_in)
bt1.pack()
window.mainloop()
求求大佬们帮忙解决
你的sql语句出错了,你将你的sql语言在数据库里面执行一下,看看是不是报错了。
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢
代码没有问题,运行正常,可能在建数据库表时里面重名的表格。在建表时,使用:
cur.execute('drop table if exists students')
cur.execute('create table students(name text prinmary key,number integer,class1 text)')
然后将两行注释掉,再尝试运行上图代码。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m
我的问题和你差不多,你参考;我的情况是用executemany进行多行输入,执行不下去,报这个错误。
问题的解决过程是:我用了 try语句 将这个语句试着执行,之后发现至能录入一行记录,且值不对。
是因为我录入的值取值太长,sqlite的interger类型不支持,系统自动缩短,最后缩短后的数据第二个和第一个就一样了,所以就重复了。最后我采用了最大的19位长度 可以输入了