2015-04-08 4 views
4

Quel est le nombre maximal de lignes pouvant être renvoyées par ExecuteReader? J'ai quelques 67 lignes d'une table et il ne retourne que le premier 20.C# Sqlite ExecuteReader rendement maximal

Voici un morceau de ma source:

SQLiteConnection sDBConnection = new SQLiteConnection("Data Source=Database.ddb;Version=3"); 
sDBConnection.Open(); 
string sqlCom = "SELECT * FROM Table1"; 
SQLiteCommand scdCommand = new SQLiteCommand(sqlCom, sDBConnection); 
SQLiteDataReader reader = scdCommand.ExecuteReader(); 

while(reader.Read()) 
{ 
    string Value1 = (string)reader["Col1"]; 
    bool Value2 = true; 
    string Value3 = (string)reader["Col2"]; 
    object[] row = { Value1, Value2, Value3, Value4, Value5 }; 
    DataGridView1.Rows.Add(row); 
} 

reader.Close(); 
sDBConnection.Close(); 

Bien sûr, les valeurs qui ne sont pas dans la boucle while sont définis ailleurs .

+2

Utilisez le débogueur, peut-être vous avez une valeur nulle qui provoque une exception. Il n'y a pas de limite de ligne pour les gestionnaires de données. –

+6

S'il y a un maximum c'est certainement plus de 20. Quelque chose d'autre est faux. Y a-t-il des exceptions? –

+0

Non, ce qui explique pourquoi je suis confus. J'ai parcouru et testé toutes les valeurs pour m'assurer qu'il n'y a pas de null. –

Répondre

1

Essayez modifier votre code comme ci-dessous:

SQLiteConnection sDBConnection = new SQLiteConnection("Data Source=Database.ddb;Version=3"); 
sDBConnection.Open(); 
string sqlCom = "SELECT * FROM Table1"; 
SQLiteCommand scdCommand = new SQLiteCommand(sqlCom, sDBConnection); 
SQLiteDataReader reader = scdCommand.ExecuteReader(); 

while(reader.Read()) 
{ 
string Value1 = reader["Col1"] != null ? Convert.ToString(reader["Col1"]) : string.Empty; 
bool Value2 = true; 
string Value3 = reader["Col2"] != null ? Convert.ToString(reader["Col2"]) : string.Empty; 
object[] row = { Value1, Value2, Value3 }; 
DataGridView1.Rows.Add(row); 
} 

reader.Close(); 
sDBConnection.Close(); 

supprimer Value4 et valeur5 ou lui donner la valeur par défaut