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?
hinzufügen command.Prepare() konstruieren; nach command.Parameters.AddWithValue ("@ username", username); – RajSharma