与 SQL 服务器的 Pyodbc 连接失败 - 既没有提供 DSN 也没有提供 SERVER 关键字

Pyodbc connection to SQL Server failed - neither DSN nor SERVER keyword supplied

我正在尝试使用 pyodbc 插入我的 SQL 服务器数据库。但我永远无法实现它。请帮助我。

顺便说一句;我在前面的代码片段中定义了 index_pred_as_int

我的代码:

import pyodbc 

server = 'DESKTOP-T7OFQV6\SQLEXPRESS1'
database = 'VidgaEmotionRecognition'

#defining connection string
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server}; \\
                       SERVER=' + server + '; \\
                       DATABASE=' + database +';\\
                       Trusted_Connection=yes;')

#creating the connection cursor
cursor = cnxn.cursor()

#defining insert query
insert_query='''INSERT INTO FaceEmotion (emotion)
                VALUES (?);'''

#defining insertion value
values = index_pred_as_int

#insert the data
cursor.execute(insert_query, values)

#commit the insertion
cnxn.commit()

#grab the database table values
cursor.execute('SELECT * FROM FaceEmotion')

#printing the results
for values in cursor:
    print(values)

这是错误:

OperationalError

Traceback (most recent call last)

in
18 #defining connection string
---> 19 cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server}; \
20 SERVER=' + server + '; \
21 DATABASE=' + database +';\

OperationalError: ('08001', '[08001] [Microsoft][ODBC Driver 17 for SQL Server]Neither DSN nor SERVER keyword supplied (0) (SQLDriverConnect); [08001] [Microsoft][ODBC Driver 17 for SQL Server]Invalid connection string attribute (0)')

我不确定我是否理解 \\ 应该如何工作,但我认为他们正在破坏它。我在我的计算机上建立了一个类似的连接并使用了相同的连接字符串并得到了相同的错误。当我将整个连接字符串放在一行时,它似乎工作得很好。

cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=' + server + ';DATABASE=' + database +';Trusted_Connection=yes')

编辑:如果你只使用一个 \ 来分割你的线,而不是那个三元组,它似乎也能正常工作。