如何在C#类中正确打开和关闭SQLite数据库

时间:2014-06-26 10:13:48

标签: c# sqlite resources system.data.sqlite

好的,所以我有一个DBConnect类,其中我的所有方法都与我的程序数据库有关。我知道连接是一个相对昂贵的资源,所以打开和关闭我的数据库文件的正确方法是什么。

这就是我目前正在使用的内容 我只是在构造函数中创建连接,然后在方法中需要时打开和关闭它。这是否正确返回到池的连接?如果我在我的方法中使用(conn)也会更好。

public class DBConnect
{
    SQLiteConnection conn = null;
    public DBConnect()
    {
        string connStr = @"Data Source=tests.db; Version=3;";
        conn = new SQLiteConnection(connStr);
    }

    public DBConnect(string connStr)
    {
        conn = new SQLiteConnection(connStr);
    }
    public DataTable DBSelect(string query)
    {
    /* 
     * Uses a select query to store data from the database into 
     * a datatable 
     */
        try
        {
            conn.Open();
            DataTable dt = new DataTable();
            using (SQLiteCommand cmd = new SQLiteCommand(query, conn))
            {
                using (SQLiteDataReader dr = cmd.ExecuteReader())
                {
                    dt.Load(dr);
                    return dt;
                }
            }
        }
        catch (SQLiteException err)
        {
            MessageBox.Show("Caught exception: " + err.Message);
            return null;
        }
        finally
        {
            conn.Close();
        }
    }//DBSelect

0 个答案:

没有答案