Microsoft SQL Server 不会更新使用 Python 插入的数据

问题描述 投票:0回答:1

我正在尝试通过 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 表中

python sql-server sql-update
1个回答
0
投票

尝试在“for record in reports”中执行插入语句后调用cursor.commit()。您只能在 select 语句之后调用它。

© www.soinside.com 2019 - 2024. All rights reserved.