我创建了一个数据库,让它尽可能地搜索一个特定的batchnr。 我想做的是:
输入batchnumber:1001 你知道吗
它将给出以下结果:
(1001, 90, 10001, 2, 500, 'Veghel', 100, 300)
然后会问以下问题: “是否要对此进行更改”
您要更改的值存储在“ChangeThis”中,您要更改的值存储在“ToThis”中(必须将其翻译为英语,所以它非常基本)
例如,您将得到如下结果:
(1001, 90, 10001, 2, 500, 'Veghel', 100, 300)
change what: 500
into: 9999
现在我想把这些变量放到我的python SQL代码中我尝试了以下方法:
conn = sqlite3.connect('DATABASE.db')
cur = conn.cursor()
ChangeThis = str(input("which value would you like to change?(value):"))
ToThis = str(input("In what would you like to change this?(value):"))
change = 'UPDATE batch SET ? WHERE ?' (ToThis, ChangeThis)
print(change)
cur.execute(change)
这给了我TypeError:“str”对象是不可调用的
有人知道怎么解决这个问题吗
完整代码如下:
import sqlite3
def create_connection():
try:
conn = sqlite3.connect('DATABASE.db')
return conn
except Error as e:
print(e)
def select_all():
conn = sqlite3.connect('DATABASE.db')
cur = conn.cursor()
batchnr = input("batchnumber:")
sqlquery = 'SELECT * FROM BATCH WHERE BATCHNR ='+ batchnr
#print(sqlquery)
cur.execute(sqlquery)
rows = cur.fetchall()
for row in rows:
print(row)
verander = input("Would you like to change something about this?Y/N: ")
if verander == 'Y' or verander == 'y':
veranderen()
else:
print("Shutdown")
def veranderen():
conn = sqlite3.connect('DATABASE.db')
cur = conn.cursor()
ChangeThis = str(input("which value would you like to change?(value):"))
ToThis = str(input("In what would you like to change this?(value):"))
change = 'UPDATE batch SET ? WHERE ?' (ToThis, ChangeThis)
print(change)
cur.execute(change)
create_connection()
select_all()
问题是这条线:
您正在定义一个字符串文本,然后尝试像使用参数
(ToThis, ChangeThis)
的函数一样调用它。这是行不通的,因为正如异常所说,“str”对象是不可调用的。参数不必在那条线上。将它们添加到cur.execute()
调用:…或者只是
相关问题 更多 >
编程相关推荐