2016-06-19 10 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"); 
}  

答えて

0

sqLiteインスタンスがまだ存在していない場合は、オブジェクト参照例外が発生しますsqLite.Open()は、catch-all例外ハンドラによって処理されます。コードはfinally {}コードブロックで続行され、sqLite.Close()で別のオブジェクト参照例外が発生します。

あなたは2番目の例外を回避したい場合:

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

を私はSQLiteのためのクラスを知っているが、あなたはまた、(SQLiteのがクローズする前にまだ開いているかどうかを確認する必要があるかもしれません)

if(sqLite!=null && sqLite.IsOpen()) 
    sqLite.Close(); 
いけません

** IsOpen()メソッドをsqLiteクラスに適したものに置き換えます。

+0

私はSystem.Data.Sqliteを使用しています。 ADO.net dllを参照するクラス – DesmondANIMUS

関連する問題