python - Pyodbc 错误 07002 - 计数字段不正确或语法错误 - 从表单插入数据
问题描述
我一直在为人力资源部门构建一个网络应用程序,它将(希望)包括员工提交时间表的能力,我在尝试提交时间表时遇到了困难。连接字符串正在工作,因为我可以看到数据库中的其他数据。我一直在解决错误,但是这个 07002 错误是我无法弄清楚是什么原因造成的。
我尝试了两种不同的方法来使其正常工作。这是我的 app.py 文件中的第一次尝试-
@app.route('/timesheet', methods=['GET', 'POST'])
def employee_timesheet():
if request.method == "POST":
employee_id = request.form['employee_id']
department = request.form['department']
mondaystart = request.form['mondaystart']
mondayend = request.form['mondayend']
tuesdaystart = request.form['tuesdaystart']
tuesdayend = request.form['tuesdayend']
wednesdaystart = request.form['wednesdaystart']
wednesdayend = request.form['wednesdayend']
thursdaystart = request.form['thursdaystart']
thursdayend = request.form['thursdayend']
fridaystart = request.form['fridaystart']
fridayend = request.form['fridayend']
saturdaystart = request.form['saturdaystart']
saturdayend = request.form['saturdayend']
result = request.form
cursor = cnxn.cursor()
cursor.execute('''INSERT INTO dbo.submitted_timesheet (employee_id, department, mondaystart, mondayend, tuesdaystart, tuesdayend, wednesdaystart, wednesdayend, thursdaystart, thursdayend, fridaystart, fridayend, saturdaystart, saturdayend,) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)''')
cnxn.commit()
flash("Your form was successfully submitted")
print("Form data submitted")
return redirect (url_for('success.html', result=result))
return render_template("staff_timesheets.html")
那么另一种方式是——
@app.route('/timesheet', methods=['GET', 'POST'])
def employee_timesheet():
if request.method == "POST":
employee_id = request.form['employee_id']
department = request.form['department']
mondaystart = request.form['mondaystart']
mondayend = request.form['mondayend']
tuesdaystart = request.form['tuesdaystart']
tuesdayend = request.form['tuesdayend']
wednesdaystart = request.form['wednesdaystart']
wednesdayend = request.form['wednesdayend']
thursdaystart = request.form['thursdaystart']
thursdayend = request.form['thursdayend']
fridaystart = request.form['fridaystart']
fridayend = request.form['fridayend']
saturdaystart = request.form['saturdaystart']
saturdayend = request.form['saturdayend']
insert_query = '''INSERT INTO submitted_timesheet (employee_id, department, mondaystart, mondayend, tuesdaystart, tuesdayend, wednesdaystart, wednesdayend, thursdaystart, thursdayend, fridaystart, fridayend, saturdaystart, saturdayend,) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)'''
result = request.form
cursor = cnxn.cursor()
cursor.execute(insert_query, values)
cnxn.commit()
flash("Your form was successfully submitted")
print("Form data submitted")
return redirect (url_for('success.html', result=result))
return render_template("staff_timesheets.html")
如果我提交时间表,我会在标题中看到 Pyodbc 错误。一切都在列名和类型方面匹配。HTML 表单也应该没问题,但如果需要上下文,可以发布它。
有什么想法我哪里出错了吗?
谢谢!
解决方案
推荐阅读
- assembly - 调用者 - 调用者在程序集中保存了寄存器和调用约定?
- html - 防止可滚动 Flex Div 中的项目改变页面布局
- javascript - 我们如何通过原生 JS 添加 loading="lazy"?
- react-native - react-native-dialogflow 中的 result.queryResult.fulfillmentMessages[0].text.text[0] 是什么?
- node.js - 有没有办法根据 node_modules 文件夹确定主机操作系统和节点版本?
- c# - 使用 Azure 函数的简单发布请求
- python - 将python函数结果存储在不同的csv中?
- javascript - 传单控件没有响应点击
- javascript - 如何从 React on change 中获取 key 而不是 value?
- excel - 如何使用标准计算时间轴上的出现次数