使用c#迭代从SQLite表列中提取所有数据

本文关键字:提取 数据 迭代 SQLite 使用 | 更新日期: 2023-09-27 17:53:23

我使用stringbuilder编写了一个SQL查询,并使用SqlteDataReader将其发送到数据库,如下所示:

string criteria = String.Format("SELECT tile_id FROM {0} WHERE zoom_level = 14", dbTable);
                    SQLiteCommand command = new SQLiteCommand(criteria, dbConn);
                    SQLiteDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                        Console.WriteLine("Starting reader: 'n");
                        foreach (var i in reader)
                        {
                            Console.WriteLine(i);
                        }
                    }
              isMet = true;
                }
            catch (Exception E )
            {
                Console.Write(E.StackTrace);
            }

dbTable == map。我已经通过SQLite浏览器运行了上面的SQL查询,并且它提取了正确的信息。

返回值总是System.Data.Common.DataRecordInternal,经过一些谷歌搜索,我仍然有点失落。我发现了很多解决方案,实现了解决问题的DataReader,但我已经在使用一个。

tile_id在SQLite中存储为TEXT,到目前为止,我试图检索它格式化为string, varint,所有这些都返回了上述值。

谁能给点建议?

使用c#迭代从SQLite表列中提取所有数据

您不需要foreach循环。您应该将阅读器读取代码更改为

            Console.WriteLine("Starting reader: 'n");
            while (reader.Read())
            {
              Console.WriteLine(reader["tile_id"].ToString());
            }

参见使用DataReader检索数据。查看更多信息。

reader.Read()已经移动到下一个记录(如果有)。所以使用:

while (reader.Read())
{
    Console.WriteLine("Starting reader: 'n");
    Console.WriteLine(reader.GetString(0));
}