/// /// Class to manage access to SQLite database /// using System; using System.Data; using System.Data.SQLite; using System.Runtime.InteropServices; internal class SQLite { /// Fields private SQLiteConnection connector; private SQLiteConnectionStringBuilder conString; private SQLiteCommand cmd = null; private SQLiteDataAdapter dataAdapter = null; private SQLiteCommandBuilder commandBuilder = null; private DataSet dataset = new DataSet(); private DataTable datatable = null; private string last_error = string.Empty; /// Constructor public SQLite() { this.connector = new SQLiteConnection(); } /// Connect to db file public bool connect(string strPath) { try { if (!System.IO.File.Exists(strPath)) SQLiteConnection.CreateFile(strPath); conString = new SQLiteConnectionStringBuilder(); conString.DataSource = strPath; this.connector.ConnectionString = conString.ToString(); this.connector.Open(); return true; } catch (Exception ex) { this.last_error = ex.ToString(); return false; } } /// Closes connection public void close() { this.connector.Close(); } /// Returns last error public string lasterror { get{ return this.last_error; } } /// Read data from db public DataTable read(string query) { try { dataAdapter = new SQLiteDataAdapter(query, connector); commandBuilder = new SQLiteCommandBuilder(dataAdapter); dataset.Reset(); dataAdapter.Fill(dataset); datatable = dataset.Tables[0]; return datatable; } catch (Exception ex) { this.last_error = ex.ToString(); return null; } } /// Update data to db public bool update() { try { dataAdapter.Update(datatable); return true; } catch (Exception ex) { this.last_error = ex.ToString(); return false; } } /// Make scalar query public object scalar_query(string query) { object result = null; try { using (cmd = new SQLiteCommand(query, connector)) { result = cmd.ExecuteScalar(); } return result; } catch (Exception ex) { this.last_error = ex.ToString(); return null; } } /// Make execute query public int exec_query(string query) { int result = -1; try { using (cmd = new SQLiteCommand(query, connector)) { result = cmd.ExecuteNonQuery(); } return result; } catch (Exception ex) { this.last_error = ex.ToString(); return -1; } } }