2016-06-19 3 views
-2
if (!(string.IsNullOrWhiteSpace(eveTable))) 
{ 
    try 
    { 
     sqLite.Open();       
     Query = "CREATE TABLE '" + eveTable + "'(EID TEXT PRIMARY KEY, Name TEXT, RollNo TEXT, University TEXT, College TEXT, Course TEXT, Semester TEXT, Section TEXT, Prize TEXT);";       
     SQLiteCommand createCommand = new SQLiteCommand(Query, sqLite); 
     createCommand.ExecuteNonQuery(); 
     MessageBox.Show("Event Creation Success!"); 
    } 
    catch (Exception exception) 
    { 
     MessageBox.Show(exception.Message); 
    } 
    finally 
    { 
     EventsDB ev = new EventsDB(); 
     sqLite.Close();      
     this.Hide(); 
     ev.Show(); 
    } 
} 
else 
{ 
    MessageBox.Show("White space not allowed"); 
}  

Antwort

0

Wenn SQLite-Instanz noch nicht existiert (und ich glaube nicht, es tut), erhalten Sie eine Object Reference Exception zuerst auf sqLite.Open(), die von Ihrem Catch-All-Exception-Handler verarbeitet wird. Der Code wird dann im finally {} Codeblock fortgesetzt und trifft eine weitere Object Reference-Ausnahme in sqLite.Close().

Wenn Sie die zweite Ausnahme zu vermeiden:

if(sqLite!=null) 
    sqLite.Close(); 

Ich weiß nicht, die Klasse für SQLite, aber Sie müssen auch überprüfen, ob die SQLite vor dem Schließen noch offen ist()

if(sqLite!=null && sqLite.IsOpen()) 
    sqLite.Close(); 

** Ersetze die IsOpen() -Methode mit allem, was für deine sqLite-Klasse geeignet ist

+0

Ich verwende System.Data.Sqlite; Klasse durch Referenzieren ADO.net dll Vergessen zu erwähnen, dass zuvor – DesmondANIMUS

Verwandte Themen