bla_92 Geschrieben 20. März 2017 Melden Share Geschrieben 20. März 2017 Hallo zusammen, ich habe mal wieder ein Problem mit Unity. Ich habe eine Datenbank mit SQLite angelegt und möchte diese in meinem Projekt auslesen (und später auch bearbeiten). Das Ganze soll letztendlich auf einem Android Smartphone laufen. Genau hier liegt das Problem, denn auf dem PC lief es bereits. Nachfolgend meine Änderungen damit es auf dem Smartphone läuft ( was nicht geklappt hat ) using System.Collections; using UnityEngine; using Mono.Data.Sqlite; using System.Data; using System; using System.IO; public class Testdatenbank : MonoBehaviour { private IDbConnection dbcon; // Use this for initialization void Start () { string path = Application.persistentDataPath + "/Testdb.s3db"; if (!File.Exists(path)) {WWW loadDB = new WWW("jar:file://" + Application.dataPath + "!/assets/" + "Testdb.s3db"); while (!loadDB.isDone) { } File.WriteAllBytes(path, loadDB.bytes); } string conn = "URI=file:" + path; dbcon = new SqliteConnection(conn; dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); string sqlQuery = "SELECT *" + "FROM Test"; dbcmd.CommandText = sqlQuery; IDataReader reader = dbcmd.ExecuteReader(); while (reader.Read()) { string vorname = reader.GetString(0); string name = reader.GetString(1); Debug.Log("Vorname= " + vorname + " Name=" + name); } reader.Close(); reader = null; dbcmd.Dispose(); dbcmd = null; dbcon.Close(); dbcon = null; } } Hat jemand eine Idee was ich falsch mache? Danke für jede Hilfe Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hrungdak Geschrieben 21. März 2017 Melden Share Geschrieben 21. März 2017 Was klappt denn nicht? Gibt es eine Fehlermeldung? Was hast du verändert? Wenn das der Originalcode ist, sollte in dieser Zeile schon mal eine Fehlermeldung kommen: dbcon = new SqliteConnection(conn; Schließende Klammer fehlt. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
bla_92 Geschrieben 21. März 2017 Autor Melden Share Geschrieben 21. März 2017 Nein ich hab es etwas abgeändert damit man auch versteht was ich da treibe seither hatte ich mich an einem Codebeispiel aus dem Internet orientiert: string conn = "URI=file:" + Application.dataPath + "/PickAndPlaceDatabase.s3db"; //Path to database. IDbConnection dbconn; dbconn = (IDbConnection) new SqliteConnection(conn); dbconn.Open(); //Open connection to the database. IDbCommand dbcmd = dbconn.CreateCommand(); string sqlQuery = "SELECT value,name, randomSequence " + "FROM PlaceSequence"; dbcmd.CommandText = sqlQuery; IDataReader reader = dbcmd.ExecuteReader(); while (reader.Read()) { int value = reader.GetInt32(0); string name = reader.GetString(1); int rand = reader.GetInt32(2); Debug.Log( "value= "+value+" name ="+name+" random ="+ rand); } reader.Close(); reader = null; dbcmd.Dispose(); dbcmd = null; dbconn.Close(); dbconn = null; } Das hat prima am Pc geklappt. Am Handy kommt keine Fehlermeldung. Die Anwendung stürzt direkt ab Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Torigas Geschrieben 21. März 2017 Melden Share Geschrieben 21. März 2017 Hast du die Lese/Schreibrechte für die Anwendung vergeben? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
bla_92 Geschrieben 21. März 2017 Autor Melden Share Geschrieben 21. März 2017 Nein hab ich nicht. Direkt am Handy kann ich die Berechtigungen nicht auswählen. Kann ich das denn im Skript machen? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Damon93 Geschrieben 21. März 2017 Melden Share Geschrieben 21. März 2017 ich greif die Frage von @Hrungdak nochmal auf: Gibt es eine Fehlermeldung? lass dir mal mit Debug ausgeben, ob deine File Locations alle stimmen... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
bla_92 Geschrieben 22. März 2017 Autor Melden Share Geschrieben 22. März 2017 Ich bin mittlerweile soweit, dass der Dateipfad stimmt aber es abstürzt sobald ich in der Zeile IDataReader reader = dbcmd.ExecuteReader(); an komme strüzt es ab und gibt folgende Fehlermeldung aus: SqliteSyntaxException: no such table: Testdb In dem von mir aufgerufenen Dateipfad befindet sich allerdings die Tabelle Ich sehe allerdings gerade, dass die Datenbank dort leer ist. Im eigentlichen Unity Verzeichnis sind meine Tabellen noch vorhanden Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.