read/write database is now functional again.
This commit is contained in:
parent
00176a2d83
commit
21220f2018
@ -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";
|
||||
}
|
||||
|
@ -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() {
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user