Ich arbeite mit SQLite in Unity und habe Probleme beim Laden von Daten aus einer Tabelle, die ich vom Spiel am Startbildschirm erzeugt habe. Ich bekomme keine Fehler und mein "reader.HasRows" Aufruf kommt wieder wahr. Wenn ich jedoch versuche, die Daten in eine DataTable zu laden, bekomme ich nichts. Ich habe SQLite bereits mit C# verwendet und verwende diesen Code als Referenz, aber ich hatte noch nie solche Probleme.DataTable.Load() bekomme keine Daten von ExecuteReader()
ScoreControl.cs:
using (SqliteConnection dbCon = new SqliteConnection("Data Source=" + Application.dataPath + "MainScoreDB.sqlite3"))
{
if (dbCon.State != ConnectionState.Open)
dbCon.Open();
string query = "SELECT * FROM highscores";
SqliteCommand command = new SqliteCommand(query, dbCon);
SqliteDataReader reader = command.ExecuteReader();
if(reader.HasRows)
{
Scores.Load(reader);
}
else
{
Debug.Log("No Data was Returned");
}
if (dbCon.State == ConnectionState.Open)
dbCon.Close();
}
Die Aussage sonst nie gebrannt, um auf jeden Fall Leser etwas bekommt. Ich bin hier ratlos, ich habe mehrere Formate der Datenbank (s3db, sqlite, sqlite3) ausprobiert, aber alle haben das gleiche Ergebnis. Ich bekomme auch keine Fehler.
EDIT
Die Application.dataPath zum Stammordner des Projektes bezieht, ich es verwenden, um die Datenbank und die Tabelle zu erzeugen, sowie Referenzierung es so weiß ich, dass es die richtige Datenbank abfragt, I habe auch eine Datenbank ohne die Tabelle darin gemacht und einen Fehler bekommen, also weiß ich, dass es auf die Datenbank zugreift.
Scores.Load() ist eine Methode in der DataTable, die es lädt die Daten aus dem Leser eingegeben.
So scheint es, dass die while-Schleife die richtige Anzahl von Malen durchläuft, aber es gibt nichts zurück. Muss ich die Art der Daten, die aus der Datenbank kommen, überhaupt verwalten?
Was ist der Wert? Haben Sie überprüft, ob Sie die richtige Datenbank abfragen? – Steve
Wenn Sie einen Pfad mit einem Dateinamen kombinieren, verwenden Sie Path.Combine(). Es wird um etwaige [möglicherweise fehlende] Backslashes kümmern. – djv
Ich denke, wir müssen Ihre Scores.Load-Methode sehen, weil andere hier in Ordnung scheint. Was sehen Sie, wenn Sie eine if-Anweisung debuggen? Sie könnten leicht die Zeilen sehen, die Sie sicher machen würden, wenn Sie die Datensätze korrekt abrufen. –