2017-08-23 10 views
-3

「{var ..}の使用」を使用する必要があるかどうか、また「Dispose()」を使用する必要があるかどうか、使い方を知りたかったのです。また、このクラスが正しいかどうかを知りたいSQLiteを使用するためのクラスを作成する

class DbConect 
{ 
    public SQLiteConnection conn; 
    public string DbName { get; set; } 

    public DbConect(string dbName) 
    { 
     DbName = dbName; 
     conn = new SQLiteConnection($"Data Source={DbName};"); 
     conn.Open(); 
    } 


    public DataTable ExecuteSql(String comm) 
    { 
     if (String.IsNullOrEmpty(comm)) 
     { 
      return null; 
     } 

     SQLiteCommand comando = new SQLiteCommand(conn); 
     comando.CommandText = comm; 

     SQLiteDataReader rquery = comando.ExecuteReader(); 

     DataTable resp = new DataTable(); 
     resp.Load(rquery); 

     rquery.Close(); 
     return resp; 
    } 
} 
+0

なぜコンストラクタで接続を開きたいですか? – maccettura

+2

一般に、[IDisposable](https://msdn.microsoft.com/en-us/library/system.idisposable(v = vs.110).aspx)を実装するものは、「最終的に」ブロックするか 'using'ステートメントでラップします。 – mason

+0

アンサーは質問自体ではなく、回答ボックスに入っています。既存の回答を無効にしないように、そのままの状態で立ててください。 – Adriaan

答えて

0

axljの答えはあなたの質問の特定のポイントをカバーしています。 少し異なる角度では、SQLiteで使用するためのより簡単で、よりよく実装されたクラスを作成することは、Dapperより非常に困難です。副次的な利点として、DapperはSQL ServerやPostgreSQLなどのより強力なデータベースシステムをサポートしていますが、通常はSQL自体を書き直す必要がありますが、その方向への移行を選択する必要があります。 SQLite/Dapper tutorialで始まる場合があります。

+0

@ jonathancunha:データベース、結合、SQL、オブジェクトバインディング - それは少し圧倒的かもしれません。 StackOverflowは、あなたが良い質問を策定するための仕事をするならば、あなたの質問にあなたを助けるためにここにあります。 Dapperに関しては、データベースの使い方をより簡単に、難しくはないと感じています。あなたは最終的にあなたのプログラムでSQLiteからのデータを使用しなければならず、Dapperはあなたのために足の仕事を処理します。 StackOverflow自体はDapperを使用しますが、SQLiteではなくMicrosoft SQL Serverを使用します。 –

関連する問題