Python SQL Server Insert语句适用于int值,但不适用于varchars/string



我创建了下面的Python Tkinter应用程序,用于将文本输入框中的值插入到SQL Server表中。该程序运行并向SQL表中插入数字值,但在尝试使用字母并返回

时失败。

Tkinter回调异常

pyodbc。ProgrammingError: ('42S22', "[42S22] [Microsoft][ODBC SQL Server Driver][SQL Server]无效的列名'asdf'。(207) (SQLExecDirectW)")。

插入函数代码。

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)

f"INSERT INTO TEST_DISA_MAIN_TABLE(DENSITY_VALUE, DATE_1, TIME_1, CHART_VALUE) VALUES ('{value1}', '{value1}', '{value1}', '{value1}')">

试试这个。我认为你的问题出在引号上。