如何在C#中获取一系列sqlite select结果?

时间:2018-05-28 12:42:16

标签: c# sqlite

您好我正在尝试从sqlite返回值,但目前我在获取整个列表列表时遇到问题。

这是我到目前为止所做的:

private IDataReader _reader = null;
public void DB_Load_test ( )
{
    _connection = new SqliteConnection ( _sqlDBLocation );
    _command = _connection.CreateCommand ( );
    _connection.Open ( );
    _command.CommandText = "SELECT * FROM some_table"; 

    _reader = _command.ExecuteReader ( );

}

_reader部分使用_reader.GetValue ()方法从列中返回所有值的值。但是如何更改行?只有第一行可以这样读...

2 个答案:

答案 0 :(得分:0)

使用read方法迭代行。

while (_reader.Read())
{
     Console.WriteLine(String.Format("{0}", reader[0]));                
}

答案 1 :(得分:0)

  

您需要阅读SQlDataReader读者从ExecuteReader读取的所有值。这里我创建了一个示例类来举例说明。

班级定义:

public class Sample
{
    public string val1{ get; set; }
    public int val2 { get; set; }
    //Add other fields for data as per ur database

    public Sample(string val1,int val2 )//add further members in constructor
    {
       this.val1 = val1;
       this.val2 = val2;
    }

}


Sample[] allRecords = null;
List<Sample> list = new List<Sample>();
using (var reader = command.ExecuteReader())
{
    while (reader.Read())
    {
       list.Add(new Sample(reader.GetString(0), reader.GetInt32(1));
    }

    allRecords = list.ToArray();
}

不,你不必添加与数据库相同的var名称,但是在数据类型的情况下你应该