Files
ssg_rest_server/ssgrestserver/request/DBManager.cs
2026-04-01 20:16:50 +09:00

134 lines
3.0 KiB
C#

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;
}
}
}
}