我正在尝试通过 Python 更新 SQL Server 表。但不幸的是它没有更新。
我收到消息成功,但没有更新数据。
如果我从 SQL Server 中调用相同的 SQL 脚本,它会正确更新。
让我向您展示我的脚本:这是我的 Python 代码:
import pyodbc
import pandas as pd
import sys
records = [
['22DTHA13', 'CNTT khóa 22 lớp 4', 60],
['22DTHA14', 'CNTT khóa 22 lớp 5', 70],
]
server = 'GIGABYTECUAT\\SQLEXPRESS'
database = 'BAI02_QLSV1'
username = ''
password = ''
connection_String = f'DRIVER={{SQL Server}};SERVER={server};DATABASE = {database};UID={username};password = {password};TRUST_CONNECTION = yes;'
try:
conn = pyodbc.connect(connection_String)
except Exception as e:
print(e)
print("Task is terminated")
sys.exit()
else:
cusor = conn.cursor()
insert_statement = """
INSERT INTO LOP VALUES (?, ?, ?)
"""
try:
for record in records:
print(record)
cusor.execute(insert_statement, record)
cusor.execute("SELECT * FROM LOP WHERE SISO >=50")
rows = cusor.fetchall()
for row in rows:
print(row)
cusor.commit()
except Exception as e:
#cusor.rollback()
print(f'Error: {e}')
#print("transaction rolled back")
else:
print("record inserted successfully")
cusor.commit()
cusor.close()
finally:
if conn:
print('connection closed')
conn.close()
数据在终端中更新,但不在 MSSM 的 LOP 表中
尝试在“for record in reports”中执行插入语句后调用cursor.commit()。您只能在 select 语句之后调用它。