2016-06-06 14 views
1

Ich versuche, eine einfache SQLite-Datenbank zu erstellen. Ich verwende die offizielle SQLite-Erweiterung für C# und ich verwende DataGrip von IntelliJ, um zu überprüfen, ob die Daten vorhanden sind, aber mein C# -Programm erzielt keine Ergebnisse.SQLite-Abfrage gibt keine Zeilen zurück

Dies ist der Code, der die Abfrage ausführt:

SQLiteConnection connection = new SQLiteConnection(DbDsn); 

User user = new User(); 

using (connection) 
{ 
    connection.Open(); 

    string sql = "SELECT * FROM user WHERE username = @username ;"; 
    SQLiteCommand command = new SQLiteCommand(sql, connection); 
    command.Prepare(); 
    command.Parameters.AddWithValue("@username", username); 

    SQLiteDataReader reader = command.ExecuteReader(); 

    if (reader.Read()) 
    { 
     user.Id = (int) reader["id"]; 
     user.Username = reader["username"] as string; 
     user.Password = reader["password"] as string; 
     user.Name = reader["name"] as string; 
     user.LastName = reader["last_name"] as string; 
     user.Type = (UserTypes) reader["type"]; 
    } 
    else 
    { 
     throw new ObjectNotFoundException(); 
    } 
    connection.Close(); 
} 

Und das ist das Ergebnis einer einfachen Select * From user; Abfrage der Benutzertabelle (done auf DataGrip):

id username passw… name last_name type 
1 managertest oAWpW… BENJAMIN ARIEL NAVA MARTINEZ 1 
2 clerktest iRYMz… EMPLEADO PRUEBA 0 

Wie Sie können Sehen Sie, die Datensätze sind da (ein Ich habe überprüft, dass die Abfrage für die exakt gleiche Datei ausgeführt wird), jedoch scheint das C# -Programm die if-Anweisung zu überspringen (weil gelesen false zurückgegeben wird), als ob es keine Zeilen in der Datenbank, was ist das? Das Problem hier?

+0

hinzufügen command.Prepare() konstruieren; nach command.Parameters.AddWithValue ("@ username", username); – RajSharma

Antwort

0

Anruf SQLiteCommand.PrepareNACH Sie abgeschlossen haben Ihren Befehl

//... 
string sql = "SELECT * FROM user WHERE username = @username ;"; 
SQLiteCommand command = new SQLiteCommand(sql, connection); 
command.Parameters.AddWithValue("@username", username); 
// Call Prepare after setting the Commandtext and Parameters. 
command.Prepare(); 

SQLiteDataReader reader = command.ExecuteReader(); 
//...