2

コードのセクションで、DataTable と DataTableReader を使用して SQLite データベースから情報を取得し、リストに追加します。プログラムが reader.GetValue 行に到達すると、プログラムは ArgumentOutOfRangeException をスローします。私が知る限り、これが起こる理由はありません。

    DataTable dt = db.GetDataTable(Program.CONN, "SELECT ID FROM table WHERE column LIKE 'False%'");
    using (DataTableReader dtr = dt.CreateDataReader())
    {
         while (dtr.Read())
         {
              int rt = 0;
              foreach (DataRow dr in dt.Rows)
              {
                   string line = dtr.GetValue(rt).ToString();//Arguement out of range exception being thrown here
                   idList.Add(line);
                   rt++;
              }
          }
     }
4

2 に答える 2

0
int fc = dataReader.FieldCount;
while (dtr.Read())
{
  for (int rt = 0 ; rt < fc ; rt ++)
  {
     if (fc > rt)
     {
         if (!(dtr.IsDBNull(rt)))
         {
            string line = dtr.GetValue(rt).ToString();
            idList.Add(line);
         }
      }
   }
}
于 2014-01-15T14:33:17.633 に答える