2016-09-21 1 views
0

Ich versuche, eine Parent-Child-Hierarchie in einer SQLite-Datenbank zu machen.
Allerdings bin ich eine Ausnahme in der Zeile vor dem letztenSQLite Wählen Sie, wo ID entspricht

An unhandled exception of type 'System.Data.SQLite.SQLiteException' occurred in System.Data.SQLite.dll 
Additional information: SQL logic error or missing database 

Diese bekommen ist mein Code:

SQLiteDataReader reader; 
string main_subject = ""; 

lastParagraphHeading2 = false; 
sql = "SELECT last_insert_rowid() FROM Hilchot"; 
command = new SQLiteCommand(sql, m_dbConnection); 
long lastID = (long)command.ExecuteScalar(); 

sql = "select * from Hilchot where ID=" + lastID; 
command = new SQLiteCommand(sql, m_dbConnection); 
reader = command.ExecuteReader(); 
main_subject = reader["Title"].ToString(); 
+0

@MethodMan Ich verstehe nicht, was Sie meinen. Was stimmt nicht mit dem, was ich getan habe? – amitairos

+0

Ok, wenn Sie den Debugger verwenden .. was ist der Wert von 'lastID', weil ich diese Syntax nicht verstehe, es sei denn, es ist eine Funktion' last_insert_rowid() 'warum ändern Sie die Abfrage nicht, um die Max() der Rowid zurückzugeben stattdessen..? kannst du Haltepunkte setzen und uns sagen, was 'lastId value 'ist und ob reader null ist oder nicht .. auch was ist der Wert von main_subject' – MethodMan

+0

@MethodMan Das ist, was ich gefunden habe, was du tun kannst. Es gibt eine Zahl zurück. – amitairos

Antwort

-1
using (var connection = new SQLiteConnection()) 
{ 
    connection.ConnectionString = connectionString;//your connection string here 

    using (var command = new SQLiteCommand()) 
    { 
     connection.Open(); 
     command.CommandType = CommandType.Text; 
     command.CommandText = sql; 
     command.Connection = connection; 

     using (SQLiteDataReader reader = command.ExecuteReader()) 
     { 
      if (reader.HasRows) 
      { 
       // Do something 
      } 
     } 
    } 
}