使用c#从sqlite本地文件阅读所有记录

ggazkfy8  于 2023-02-23  发布在  SQLite
关注(0)|答案(2)|浏览(215)

我尝试从本地sqlite文件读取所有记录。但是由于某种原因,我使用的代码没有阅读所有记录。它只读取了第二行,也就是只读取了几列,而不是该行的所有列。
下面是我的示例sqlite文件中的记录。

1|ABC - Student1|1E|TX|01122017|BLK|120|9210001010|20121|sample1
1|DEF - Student2|2E|AZ|01112017|BLK|110|9210002020|20122|sample2
1|GHI - Student3|3E|TX|01102017|BLK|130|9210003030|20123|sample3
1|JKL - Student4|4E|AZ|01092017|BLK|100|9210004040|20124|sample4
1|MNO - Student5|5E|TX|01082017|BLK|140|9210005050|20125|sample5

当我在记事本中打开示例文件时,下面是我看到的数据:

1ABC - Student11ETX01122017BLK120921000101020121sample1K
1DEF - Student22EAZ01112017BLK110921000202020122sample2Q
1GHI - Student33ETX01102017BLK130921000303020123sample3P
1JKL - Student44EAZ01092017BLK100921000404020124sample4Y
1MNO - Student55ETX01082017BLK140921000505020125sample5

当我尝试从代码中读取所有记录时,它只读取了第2条记录,也不是所有列。它只读取了5列。下面是我用来读取文件的代码:

public List<string> ReadStuent()
        {
            var conn = new SQLiteConnection(@"Data Source=C:\Sqlite\Students.sqlite");
            SQLiteDataReader datareader;
            
            int count = 0;
            var StudentData= new List<string>();
            conn.Open();
            
            SQLiteCommand cmd = new SQLiteCommand(conn);
            cmd.CommandText = "SELECT * FROM Students";
            

            datareader = cmd.ExecuteReader();
            while (datareader.Read())
            {
                StudentData.Add(datareader.GetString(count));
                count++;
            }
            conn.Close();
            return StudentData;
        }

谁能帮帮我我到底做错了什么?

7ivaypg9

7ivaypg91#

public List<string> ReadStuent()
        {
            var conn = new SQLiteConnection(@"Data Source=C:\Sqlite\Students.sqlite");
            SQLiteDataReader datareader;
            
          
            var StudentData= new List<string>();
            conn.Open();
            
            SQLiteCommand cmd = new SQLiteCommand(conn);
            cmd.CommandText = "SELECT * FROM Students";
            

            datareader = cmd.ExecuteReader();
            while (datareader.Read())
            {
                StudentData.Add(datareader["nameoffieldhere"].ToString());
             
            }
            conn.Close();
            return StudentData;
        }
pn9klfpd

pn9klfpd2#

下面是一个基本的例子,可以帮助你继续前进。你的方法还有其他问题,但我将忽略这些细节,并专注于你的代码示例。

// The datareader.Read() below sets the current row and will increment
// the current row with each loop iteration
while (datareader.Read())
{
    // iterate all columns on the datareader to get values
    for(var i = 0;i < datareader.FieldCount; i++)
    {
        // get current column from current row
        studentData.Add(datareader.GetString(i));
    }
}

相关问题