using System; using System.Collections.Generic; using System.Data; using System.Data.SQLite; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ssgrestserver.request { class DBManager { #region Singleton private volatile static DBManager mInstance = null; private static object mSingletonLocker = new object(); private DBManager() { CONNECT_STRING = Program.mainForm.getStartupPath() + @"\ssgCRUD.db"; DB_SOURCE = $@"Data Source={CONNECT_STRING}"; try { using (var conn = new SQLiteConnection(DB_SOURCE)) { int result = 0; conn.Open(); using (var command = new SQLiteCommand("select count(*) from sqlite_master WHERE Name = 'ssgCRUD'", conn)) { result = Convert.ToInt32(command.ExecuteScalar()); } if (result < 1) { string bufTableBuildQuery = @"create table ssgCRUD (seqGFrameNo TEXT PRIMARY KEY, vriNoticeNo TEXT UNIQUE, payload TEXT)"; using (var command = new SQLiteCommand(bufTableBuildQuery, conn)) { command.ExecuteNonQuery(); } } } } catch (Exception) { throw; } } string CONNECT_STRING = ""; string DB_SOURCE = ""; public static DBManager getInstance() { lock (mSingletonLocker) { if (mInstance == null) { mInstance = new DBManager(); } } return mInstance; } #endregion public DataSet sendSelectQuery(string query) { DataSet rtnValue = new DataSet(); try { using (var adapter = new SQLiteDataAdapter(query, DB_SOURCE)) { adapter.Fill(rtnValue, "rtnTable"); } } catch (Exception ex) { Program.mainForm.recvLog("SQLQUERY_SELECT", ex.ToString()); } return rtnValue; } public bool sendInsertQuery(string query) { try { using (var conn = new SQLiteConnection(DB_SOURCE)) { conn.Open(); using (var command = new SQLiteCommand(query, conn)) { command.ExecuteNonQuery(); } } return true; } catch (Exception ex) { Program.mainForm.recvLog("SQLQUERY_INSERT", ex.ToString()); return false; } } } }