如何使用MSSQL和Python将元素与用户索引进行比较

如何使用MSSQL和Python将元素与用户索引进行比较,python,sql-server,pyodbc,Python,Sql Server,Pyodbc,我在MicrosoftSQLServerManagementStudio中创建了表,然后用Python创建了与数据库的连接 我可以获取一个表的全部记录,这意味着我的连接没有任何问题。 然而,我想创建一个登录系统,并试图比较用户输入的输入和登录系统的数据库记录 这是我的密码 def read(conn,name,password): cursor = conn.cursor() cursor.execute("select * from UserList") if(name==

我在MicrosoftSQLServerManagementStudio中创建了表,然后用Python创建了与数据库的连接

我可以获取一个表的全部记录,这意味着我的连接没有任何问题。 然而,我想创建一个登录系统,并试图比较用户输入的输入和登录系统的数据库记录

这是我的密码

def read(conn,name,password):
cursor = conn.cursor()
cursor.execute("select * from UserList")
if(name==cursor["Username"] & password == cursor["Password"])  :
    print("A")
因此,当我运行它时,它会给出一个错误

File "C:/Users/PycharmProjects/MyProject/Project", line 18, in <module>
read(conn,name,password)
File "C:/Users/PycharmProjects/MyProject/Project", line 6, in read
if(name==cursor["Username"] & password == cursor["Password"])  :
TypeError: 'pyodbc.Cursor' object is not subscriptable

问题是什么?我应该遵循哪个指南来解决这个问题?

您需要使用这些游标函数之一将查询结果加载到内存中

cursor.executeselect*自用户列表 获得所有结果 结果=cursor.fetchall 得到一个结果 结果=cursor.fetchone 分块获得多个结果 结果=cursor.fetchmany10 参考:

fetchone&fetchmany将结果分块加载到内存中。然后需要循环,直到没有更多的记录可用

尽管如此: 结果=cursor.fetchmany10 如果lenresults==0: 打破 旁注:我希望password列实际上是一个散列密码,由一个随机的salt组成,而不是如代码所示的纯文本。