如何从 sql 算作 Npsql 中的值

How to Count from sql as a value in Npsql

我正在使用 Npgsql 访问 postgresql 数据库

我是运行一个查询:

int a = connection.Execute(@"SELECT count(*) FROM account AS a WHERE a.account_name = 'food'");

查询将 return 值 4,但我的 a 得到 -1.what 是这里的问题,我该如何解决?

2 个选项:

  1. 您的查询无法从数据库中检索数据,您需要通过分析数据库中的查询来检查它。

  2. 尝试使用 reader 而不是执行。

    // Retrieve all rows
    
    
    await using var cmd = new NpgsqlCommand(@"SELECT count(*) 
    FROM account AS a WHERE a.account_name = 'food'", conn);
    
     await using var reader = await cmd.ExecuteReaderAsync();
    
     while (await reader.ReadAsync())
     {
         var a=reader.GetString(0);
        if(a==4){ 
         //do something
         }
     }
    

看来您正在使用 Dapper。如果是这样,您需要 QueryFirst 而不是 Execute,因为 Execute 只是 returns 行数

int a = connection.QueryFirst<int>(@"
SELECT count(*)
FROM account AS a
WHERE a.account_name = 'food'
");