read/write database is now functional again.

This commit is contained in:
Kuro 2025-03-08 22:15:40 +01:00
parent 00176a2d83
commit 21220f2018
5 changed files with 38 additions and 18 deletions

View File

@ -5,6 +5,10 @@ namespace ProgrammList.ConfigManager {
public static string GetSetting(string key) {
try {
if (!File.Exists(Directory.GetCurrentDirectory() + "\\app.conf")) {
Console.WriteLine("app.conf does not exist, using defaults");
return "";
}
ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
Console.WriteLine("Loading " + Directory.GetCurrentDirectory() + "\\app.conf");
configMap.ExeConfigFilename = Directory.GetCurrentDirectory() + "\\app.conf";
@ -14,6 +18,7 @@ namespace ProgrammList.ConfigManager {
catch (Exception e) {
Console.WriteLine("Error on Key " + key + ": " + e.ToString());
Console.WriteLine(e.ToString());
System.Environment.Exit(13);
}
return "13";
}

View File

@ -9,6 +9,7 @@ namespace ProgrammList.ListPrograms {
string[] keyvaluenames = { "DisplayName", "DisplayVersion", "InstallDate" };
private SqlBase sql = null;
internal ListPrograms(string sqlType, params string[] filename) {
if (sqlType == null) {
Console.WriteLine("SQL Database not defined in app.conf, allowed types:");
@ -19,19 +20,26 @@ namespace ProgrammList.ListPrograms {
throw new ArgumentNullException();
}
string sqlname = "";
if (sqlType.Equals("MYSQL", StringComparison.OrdinalIgnoreCase) || sqlType.Equals("MARIADB", StringComparison.OrdinalIgnoreCase)) {
sql = new Mysql();
sqlname = "MySQL/MariaDB";
}
else if (sqlType.Equals("MSSQL", StringComparison.OrdinalIgnoreCase)) {
sql = new Mssql();
sqlname = "MSSQL";
}
else if (sqlType.Equals("SQLITE", StringComparison.OrdinalIgnoreCase) && filename != null) {
sql = new Sqlite(prgm_path, filename[0]);
sqlname = "SQLITE";
}
else {
// Default sqlite im gleichen ordner
sql = new Sqlite(prgm_path, "sqllite.db");
sqlname = "fallback default SQLITE";
}
Console.WriteLine();
}
internal void DeleteOldData() {

View File

@ -6,28 +6,32 @@ namespace ProgrammList.sql {
public class Mssql : SqlBase {
public string[] valuenames = { "PCID", "DisplayName", "DisplayVersion", "InstallDate", "update_date", "APP_Architecture" };
public string connstring = null;
string constring = null;
SqlConnection mssqlcon = null;
SqlConnectionStringBuilder builder;
//private static Dbconnection instance;
public Mssql() {
var builder = new SqlConnectionStringBuilder {
builder = new SqlConnectionStringBuilder {
DataSource = "localhost",
UserID = "sa",
Password = "2677890E23",
InitialCatalog = "prgmlist",
TrustServerCertificate = true
};
constring = builder.ToString();
}
public void Open() {
mssqlcon.Open();
try {
mssqlcon = new SqlConnection(builder.ConnectionString);
mssqlcon.Open();
}
catch (Exception ex) {
System.Environment.Exit(13);
}
}
public void Close() {
@ -71,12 +75,7 @@ namespace ProgrammList.sql {
throw new FormatException();
}
if (rc > 0) {
Console.WriteLine("Creating table...");
}
else {
return;
}
return;
}
var cols = string.Join(" VARCHAR(255),", valuenames);
cols = cols + " Varchar(255)";
@ -107,7 +106,6 @@ namespace ProgrammList.sql {
var command = new SqlCommand(sqlCommand, mssqlcon, transaction);
command.ExecuteNonQuery();
transaction.Commit();
Console.WriteLine(sqlCommand);
Close();
}
@ -155,7 +153,6 @@ namespace ProgrammList.sql {
command.Parameters.AddWithValue("$" + valuenames[i], value.GetValueOrDefault(valuenames[i]));
}
}
Console.WriteLine(sqlCommand);
command.ExecuteNonQuery();
transaction.Commit();
Close();

View File

@ -3,7 +3,7 @@
namespace ProgrammList.sql {
internal class Mysql {
internal class Mysql : SqlBase {
public string[] valuenames = { "PCID", "DisplayName", "DisplayVersion", "InstallDate", "update_date", "APP_Architecture" };
public string connstring = null;
public MySqlConnection mysqlcon = null;
@ -67,7 +67,6 @@ namespace ProgrammList.sql {
var command = new MySqlCommand(sqlCommand, mysqlcon, transaction);
command.ExecuteNonQuery();
transaction.Commit();
Console.WriteLine(sqlCommand);
Close();
}
@ -106,7 +105,7 @@ namespace ProgrammList.sql {
command.Parameters.AddWithValue("$" + valuenames[i], value.GetValueOrDefault(valuenames[i]));
}
}
Console.WriteLine(sqlCommand);
command.ExecuteNonQuery();
transaction.Commit();
Close();

View File

@ -42,6 +42,7 @@ namespace ProgrammList.sql {
}
public bool GetSingleLine(string pcid, string program, string version) {
Open();
var command = sqlitecon.CreateCommand();
command.CommandText = @"SELECT * FROM list where PCID like "
+ pcid + " and DisplayName like "
@ -49,11 +50,12 @@ namespace ProgrammList.sql {
bool result = command.ExecuteReader().Read();
Close();
return result;
}
public void CheckTableExists() {
Open();
var command = sqlitecon.CreateCommand();
command.CommandText = @"SELECT name FROM sqlite_master WHERE type='table' AND name='list';";
var name = command.ExecuteScalar();
@ -64,10 +66,12 @@ namespace ProgrammList.sql {
cols = cols + " Varchar";
command.CommandText = "CREATE TABLE list (" + cols + ")";
command.ExecuteNonQuery();
Close();
}
public void InsertData(Dictionary<string, string> valuesqlCommand) {
Open();
var transaction = sqlitecon.BeginTransaction();
string result = "";
@ -88,6 +92,7 @@ namespace ProgrammList.sql {
Console.WriteLine(sqlCommand);
command.ExecuteNonQuery();
transaction.Commit();
Close();
}
public void InsertOrUpdateData(Dictionary<string, string> value) {
@ -104,13 +109,16 @@ namespace ProgrammList.sql {
}
public void DeleteOldData(string hostname) {
Open();
var command = sqlitecon.CreateCommand();
string sqlCommand = @"delete from list where PCID = '" + hostname + "';";
command.CommandText = sqlCommand;
command.ExecuteReader();
Close();
}
public void UpdateData(Dictionary<string, string> value) {
Open();
var transaction = sqlitecon.BeginTransaction();
string sqlCommand = @"Update list ";
@ -139,9 +147,11 @@ namespace ProgrammList.sql {
Console.WriteLine(command.CommandText);
command.ExecuteNonQuery();
transaction.Commit();
Close();
}
public void DeleteData(string id) {
Open();
var command = sqlitecon.CreateCommand();
command.CommandText = @"SELECT name FROM user WHERE id = $id";
command.Parameters.AddWithValue("$id", id);
@ -151,6 +161,7 @@ namespace ProgrammList.sql {
var name = reader.GetString(0);
}
}
Close();
}
}