python - 如何将选定的数据条目应用到我的 to sql 更新功能?

标签 python mysql

我能够访问数据库并填充列表框,但无法根据条目字符串中的文本进行搜索。

def find_roster(num_input):
global cursor
cursor.execute("""SELECT num, firstname, surname, duty FROM active WHERE num='%s'""" %(num_input))
rows = cursor.fetchall()
   dbi.close()
    for results in rows:
  rosterList.insert("end", results)
return rows

numLabel=Label(root, text="Employee #")
numLabel.grid(row=0,column=0)

findButt=Button(root, text="Find", width=12, command=find_roster)
findButt.grid(row=1, column=5)


num_input=StringVar()
num_input=Entry(root,textvariable=num_input)
num_input.grid(row=0,column=1)

我已经选择了具体的语法

这是错误:TypeError: find_roster() 缺少 1 个必需的位置参数:'num_input'

我很欣赏任何指示。

最佳答案

只需将 lambda 用于 Tkinter command 回调,并传入 num_input 值作为参数。另外,调整数据库连接和游标对象以适应您的流程并使用 SQL 参数化:

dbi = pymysql.connect(...)  # OUTSIDE OF FUNCTION

def find_roster(n):    
   cursor = dbi.cursor()
   cursor.execute("SELECT num, firstname, surname, duty FROM active WHERE num = %s", (n,))

   rows = cursor.fetchall()    
   for results in rows:
       rosterList.insert("end", results)

   cursor.close()    
   return rosterList

#... other code

findButt=Button(root, text="Find", width=12, command=lambda: find_roster(num_input))

dbi.close()                 # OUTSIDE OF FUNCTION

关于python - 如何将选定的数据条目应用到我的 to sql 更新功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47982620/

相关文章:

mysql - 对于 Oracle 数据库表上的 R 中的循环错误

php - 如何将阿拉伯名称存储到 `mysql DB`

python - Tkinter:在 <Key> 事件之后设置 StringVar,包括按下的键

python - 使用 slider 小部件以交互方式更改图像内容

python - 导入错误: module 'main' has no attribute '__main__' after doing pip -e

python - 递归 python-JSON 读取器

python - 摩尔斯电码解码器python函数

mysql - 将一行的结果调整为其他行

mysql - 将 MySQL 结果集转换为单个 JSON OBJECT(MySQL 数据类型)

mysql - 如何一起显示表格和总成本?