当前位置: 首页 > 知识库问答 >
问题:

SQLite Xamarin将数据库表表单为ListView

袁骏祥
2023-03-14

你好,我目前正在尝试在一个Android基础应用程序中显示一个表格。然而,我的问题是关于:

var db = new SQLiteAsyncConnection(Database.DatabasePath.DB_Path);
            foreach ( var N in db.Table<Database.Inventory>() )
            {

              InventoryItems.Add(new Store_Listing { Id = N.Id, 
              Description = N.Description, Style = N.Style });

这部分代码出错:

foreach语句不能对“AsyncTableQuery”类型的变量进行操作

foreach ( var N in db.Table<Database.Inventory>() ) "

我已经查看了数据库。Inventory Class,它被设置为public Class,并且所有元素都与SQLite数据库(Type 3)表完全相同。

老实说,我真的不知道出了什么问题。

连接数据库.db3没有问题,但是我不知道这些错误,因为我对SQLite很陌生,Android.App 开发。

这是数据库的代码:

using System;
using System.Collections.Generic;
using System.Text;
using SQLite;

namespace Inventory.Database

{
    [Table("Inventory")]
    public class Inventory

    {
        [PrimaryKey, AutoIncrement]
        public int Id { get; set; }

        public string Description { get; set; }
        public string Style { get; set; }

    }
}

提前感谢您的反馈。

共有2个答案

吕飞翼
2023-03-14
var results = await db.Table<Database.Inventory>();

var query = conn.Table<Database.Inventory>();

query.ToListAsync().ContinueWith((t) =>
{
    foreach (var N in t.Result)
    {
      // code from your foreach loop
    }
});
师向文
2023-03-14

您正在调用SQLiteAsyncConnection的新实例,该实例对其所有方法(在需要的地方)使用async指令。在SQLite NuGet源代码中,您会发现

因此,在您的代码中,您有:

var db = new SQLiteAsyncConnection(Database.DatabasePath);
foreach ( var N in db.Table<Database.Inventory>() ) // Table<T> does *not* return a List<T>!!
{
    InventoryItems.Add(new Store_Listing 
    { 
        Id = N.Id, 
        Description = N.Description, 
        Style = N.Style 
    });
}

您正在尝试访问您认为是列表的内容,但实际上它是一个异步表查询

如果您查看< code>AsyncTableQuery类,它有一个< code>ToListAsync方法,该方法将< code>AsyncTableQuery对象转换为< code >列表

var db = new SQLiteAsyncConnection(Database.DatabasePath);
var myList = await db.Table<Database.Inventory>().ToListAsync();

// TODO: Add a null or empty check to prevent NullExceptions.

foreach(var N in myList)
{
    // Do your stuff
}
 类似资料:
  • 问题内容: 在将关系数据库建模为库存管理系统时,我遇到了一些麻烦。目前,它只有3个简单的表: 产品 收货 销售量 由于收货和销售是相同的,所以我正在考虑采用另一种方法: 产品 Receivings_Sales(名称无关紧要) 列类型将标识它是收货还是销售。 谁能帮助我选择最佳选择,指出两种方法的优缺点?第一个似乎合理,因为我以ORM方式进行思考。 谢谢! 问题答案: 我个人比较喜欢第一个选择,那就

  • 问题内容: 我正在尝试将表单数据转换为对象,但我有这个线程,但是我不知道为什么它对我不起作用。我正在使用以下代码。 我尝试调试它,并注意到当我的函数运行时,它总是在else语句中运行代码。 问题答案: 我在JSFiddle中添加了以上表单,它将JSON数据显示为输出。 工作中的JSFiddle

  • 如何将JS对象转换为? 我想这样做的原因是,我有一个对象,是我从~100个表单字段值中构造出来的。 现在我被要求将上载文件功能添加到表单中,当然,通过JSON这是不可能的,所以我计划转移到。那么,有什么方法可以将我的JS对象转换为吗?

  • 我正在尝试将用户在表单中输入的值插入数据库。 我有两个下拉列表用于血液测试,然后是分类。例如,用户首先选择下拉列表1“甲状腺”(类别),然后下拉列表2显示“FT4、FT3 TSH”(血液检测)等,用户进行选择。 然后他们输入日期和值。 在我的insert中,我需要在我的数据库中插入用户id(在使用会话变量登录后建立)、血液测试id(从下拉列表2)、日期和值。 我不能得到我的SQL查询正确的插入一般

  • 问题内容: 我正在建立一个网站,其中包含不同类型的项目,例如博客,帖子,文章等。用户可以将其中任何一个设置为他/她的最爱。现在,当我处理这个问题时,我有两个选择 为每种对象的用户收藏夹创建一个表。 为所有用户的所有类型的对象创建一个公用表。 第一种结构的问题是,我将不得不查询很多表以显示特定用户的收藏夹。但这将使我可以轻松地将收藏夹分为不同的类别。 但是,如果我必须在一个页面上显示所有收藏夹并将它

  • Framework7 有一些方法可以让读取和填写表单数据变得非常方便: Form 转化成 JSON 使用 app 对应的方法可以非常方便把所有的表单元素转化成一个 JSON 对象: myApp.formToJSON(form) - 把表单转换成JSON对象 form - HTML元素 or 字符串 (CSS选择器) 返回一个JSON对象 <form id="my-form" class="list