【问题标题】:Column from SQL Table to Int List C#从 SQL 表到 Int 列表的列 C#
【发布时间】:2018-01-22 16:30:43
【问题描述】:

所以,我有课

public class Glukoza {
    [PrimaryKey, AutoIncrement]
    public int Id { get; set; }
    public int Value { get; set; }
    public string Date { get; set; }
}

现在我想创建一个列表并将数据库的每个元素的值放入其中。该怎么做?

我试过了,但它不起作用。

List<int> list = new List<int>();
var norma = _connection.QueryAsync<Glukoza>("SELECT Value FROM Glukoza", list).Result.ToList();

【问题讨论】:

  • 您实际上应该永远使用.Result - 应该只是var norma = await _connection.QueryAsync(...);。现在:“它不起作用”是什么意思? 究竟会发生什么?还有:list 是什么?这对你意味着什么?
  • @MarcGravell 我使用了 .Result ,因为没有它我无法使用 .ToList() 方法。我有一个未处理的异常,它是一个 Xamarin 项目。
  • 嗯,是的,你需要先await,然后才能.ToList()var norma = (await _connection.QueryAsync&lt;Glukoza&gt;(...)).ToList();
  • 我还有一个未处理的异常。 ://
  • 而且您还没有告诉我们异常说明了什么。我们不是通灵者。你需要真正告诉我们它说的是什么。

标签: c# sql sqlite xamarin


【解决方案1】:

由于Valueint,您应该使用int 作为QueryAsync 的类型参数:

var norma = (
    await _connection.QueryAsync<int>("SELECT Value FROM Glukoza", list)
    .ConfigureAwait(false)
).ToList();

由于这是一个异步调用,因此调用的方法必须是 async

【讨论】:

  • 如果他们试图阅读所有 3 列,QueryAsync&lt;Glukoza&gt; 很好
  • @MarcGravell 不过,看起来 OP 只在他的 SQL 中投射值,所以我想他可能想要一个 int
  • 嗯;你是对的;我想它需要 OP 的澄清!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-06
  • 1970-01-01
  • 1970-01-01
  • 2020-09-29
  • 2011-08-19
  • 2020-05-22
  • 1970-01-01
相关资源
最近更新 更多