sql选择不起作用

sql选择不起作用,sql,asp.net,visual-studio-2010,ms-access-2016,Sql,Asp.net,Visual Studio 2010,Ms Access 2016,我正在asp.net项目中使用Microsoft Access 2016。 我有一个名为isAdmin的yes/no字段,我想创建一个sql,它将显示所有管理员用户。我尝试了从表1中选择*,其中isAdmin='1',但没有成功。它给了我一个错误消息:数据类型不匹配。我应该在代码中更改什么?看起来您应该尝试: select * from table1 where isAdmin = 1; 这取决于您的数据类型。如果此列的数据类型为varchar,则 select * from table1 w

我正在asp.net项目中使用Microsoft Access 2016。
我有一个名为isAdmin的yes/no字段,我想创建一个sql,它将显示所有管理员用户。我尝试了从表1中选择*,其中isAdmin='1',但没有成功。它给了我一个错误消息:数据类型不匹配。我应该在代码中更改什么?

看起来您应该尝试:

select * from table1 where isAdmin = 1;

这取决于您的数据类型。如果此列的数据类型为varchar,则

select * from table1 where isAdmin = 'yes'
如果它是int类型,那么

select * from table1 where isAdmin = 1

MS Access存储的是/否字段与标准SQL Server(甚至MS SQL Server)不同,后者的布尔值为1或0。在MS Access中,位数据类型(布尔值是/否字段)由-1 true或0 false表示。负值-1具有设置了所有位的位模式。您可以将WHERE子句写为

WHERE isAdmin = -1
为了更便于移植到其他SQL数据库,您还可以使用

WHERE isAdmis <> 0
后者适用于MS Access以及MS SQL Server或大多数其他SQL方言


另请参见isAdmin列的数据类型是什么?是/否数据类型谢谢。或者:其中isAdmin=True。不过很有趣。我以前从未见过一个问题的五个额外答案,都是错的。这就是我所做的,它告诉我标准验证中的数据类型不匹配。但当我尝试执行一个更新查询,并将isAdmin设置为1时,它成功了。所以我不知道我做错了什么