Python SQL Server Insert语句适用于INT值,但对于Varchars/strings不起作用
我创建了以下Python TKinter应用程序,以将值从文本输入框中插入SQL Server表中。该程序运行并插入数字值到SQL表中,但在尝试使用字母并返回一个时失败
tkinter回调中的例外
pyodbc.programmingerror :('42S22',“” [42S22] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server] [SQL Server]无效列列名称'asdf'。(207)(SQLEXEXECDIRECTW)
插入功能的代码。
value1=DENSITY_VALUE.get()
value2=DATE_1.get()
value3=TIME_1.get()
value4=CHART_VALUE.get()
# Insert into table
cursor.execute("INSERT INTO TEST_DISA_MAIN_TABLE(DENSITY_VALUE, DATE_1, TIME_1, CHART_VALUE) VALUES ("+value1+", "+value2+", "+value3+", "+value4+")")
# Commit changes
conn.commit()
# Close Connection
conn.close()
# Clear the text boxes
DENSITY_VALUE.delete(0, END)
DATE_1.delete(0, END)
TIME_1.delete(0, END)
CHART_VALUE.delete(0, END)
I have created the below Python Tkinter application to insert values from text entry boxes into a SQL Server table. The program runs and insert number values into the SQL table but fails when trying to use letters and returns an
Exception in Tkinter callback
pyodbc.ProgrammingError: ('42S22', "[42S22] [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'asdf'. (207) (SQLExecDirectW)").
Code for the insert function.
value1=DENSITY_VALUE.get()
value2=DATE_1.get()
value3=TIME_1.get()
value4=CHART_VALUE.get()
# Insert into table
cursor.execute("INSERT INTO TEST_DISA_MAIN_TABLE(DENSITY_VALUE, DATE_1, TIME_1, CHART_VALUE) VALUES ("+value1+", "+value2+", "+value3+", "+value4+")")
# Commit changes
conn.commit()
# Close Connection
conn.close()
# Clear the text boxes
DENSITY_VALUE.delete(0, END)
DATE_1.delete(0, END)
TIME_1.delete(0, END)
CHART_VALUE.delete(0, END)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
f“插入test_disa_main_table(dense_value,date_1,time_1,time_1,time_value)values('{value1}','{value1}','{value1}','{value1}','{value1}''
)我认为您的问题是用引号。
f"INSERT INTO TEST_DISA_MAIN_TABLE(DENSITY_VALUE, DATE_1, TIME_1, CHART_VALUE) VALUES ('{value1}', '{value1}', '{value1}', '{value1}')"
Try this. I think your problem is with quotes.