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

使用C#迭代从SQLite表列中提取所有数据,c#,sqlite,C#,Sqlite,我已经使用stringbuilder编写了一个SQL查询,并使用SqlteDataReader将其发送到数据库,如下所示: string criteria = String.Format("SELECT tile_id FROM {0} WHERE zoom_level = 14", dbTable); SQLiteCommand command = new SQLiteCommand(criteria, dbConn);

我已经使用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\u id
在SQLite中存储为
TEXT
,到目前为止,我试图检索它的格式为
string
var
int
,所有这些都返回了上述值


有人能提供一些建议吗?

你不需要那种
foreach
循环。您应该将读卡器读取代码更改为

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

看。有关详细信息。

您不需要为每个循环设置
foreach
循环。您应该将读卡器读取代码更改为

            Console.WriteLine("Starting reader: \n");
            while (reader.Read())
            {
              Console.WriteLine(reader["tile_id"].ToString());
            }
看。有关详细信息。

reader.Read()
已移动到下一条记录(如果有)。因此,请使用:

while (reader.Read())
{
    Console.WriteLine("Starting reader: \n");
    Console.WriteLine(reader.GetString(0));
}
reader.Read()
已移动到下一条记录(如果有)。因此,请使用:

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

太好了,非常感谢你。总是很高兴找到更短的解决方案!标记正确。太好了,非常感谢。总是很高兴找到更短的解决方案!标记为正确。