C# 如何使用select count()作为。。。在C中

C# 如何使用select count()作为。。。在C中,c#,sql,dapper,C#,Sql,Dapper,我正在使用数据库创建一个简单的登录页面。 所以,对于我的查询,我使用的是Dapper,我被困在下面的查询中 connection.Execute(@"SELECT count(Id) as Id FROM tblMedewerkers where Naam = @Naam and Paswoord = @Paswoord", new{ Naam = naam, Paswoord = paswoord }); 因此,如果part countId as Id返回1,则登录是正确的。 如

我正在使用数据库创建一个简单的登录页面。 所以,对于我的查询,我使用的是Dapper,我被困在下面的查询中

connection.Execute(@"SELECT count(Id) as Id FROM tblMedewerkers 
where Naam = @Naam and Paswoord = @Paswoord",
new{
 Naam = naam,
 Paswoord = paswoord
  }); 
因此,如果part countId as Id返回1,则登录是正确的。 如果它返回0,则是错误的

但是如何将数据从countId作为Id获取到要处理的对象中?

Execute执行非查询操作,通常是插入或删除操作,不选择任何内容。您需要一个查询方法—最方便的方法可能是QuerySingle,因为您只需要一个int值

int count=连接。QuerySingle@SELECTcountId作为来自tblMedewerkers的Id 其中Naam=@Naam和Paswoord=@Paswoord, 新的{ 纳姆=纳姆, 帕斯沃德=帕斯沃德 };
在将标签文本应用于您的问题之前,请先阅读标签文本。VisualStudio标签只应在您的问题是关于VS时使用,而不应在VS恰好是您的IDE的一般代码问题时使用。附带说明:存储密码几乎总是一个巨大的错误。我不知道你的情况是什么,但如果这是一个登录系统,通常的方法是存储密码的salt散列,每行生成salt,然后比较散列。在你说啊之前,但是,系统中没有什么非常重要的东西——如果有人闯入,这并不重要:人们倾向于在系统之间重复使用他们的密码,因此系统中的密码泄漏可能会让攻击者进入更重要的领域。除非你正在编写密码管理器,否则不要存储密码,并且要理解加密。我只是在尝试一些基本的东西。跟随一个C类,并且刚刚为自己尝试了一些东西。ExecuteScalar也可以使用吗?@SamHaekens如果它返回一个零而不是抛出一个异常,那么数据库可能会报告零。。。检查表格,查看记录是否确实存在,是否具有预期值;如果使用的是非ASCII字符,则除非使用nvarchar@SamHaekens如果马克的回答对你有帮助,一定要把它标记为已接受。看见