Merge branch 'SQLite'

# Conflicts:
#	SanSystem/Database/Datenbank.cs
This commit is contained in:
Damian Wessels
2023-01-15 12:19:09 +01:00
38 changed files with 1068 additions and 815 deletions

View File

@@ -9,7 +9,6 @@ using System.IO.Compression;
using System.Diagnostics;
using KlassenBIB;
using SanShared.Exceptions;
using System.Windows.Forms;
namespace Database
{
@@ -83,14 +82,9 @@ namespace Database
public void SaveProjekt()
{
string filepath = Path.Combine(pfad, "projekte", "TeufelDB.xaml");
try
{
XamlServices.Save(filepath, TeufelDB);
}
catch(UnauthorizedAccessException ex)
{
MessageBox.Show("Fehler beim speichern " + ex.Message);
}
Trace.WriteLine(filepath);
XamlServices.Save(filepath, TeufelDB);
}
}
}

View File

@@ -1,7 +1,10 @@
using KlassenBIB;
/*using FastMember;
using KlassenBIB;
using SanShared;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SQLite;
using System.Diagnostics;
using System.IO;
using System.Linq;
@@ -32,6 +35,169 @@ namespace Database
return;
}
public static void CreateSQLiteDB()
{
var source = Datenbank.Instance.TeufelDB;
// Auftraggber Datatable
DataTable dtauftraggeber = new DataTable();
// Verbindung zur SQLite herstellen
SQLiteConnection Connection = new SQLiteConnection("Data Source=datenbank.db;Version=3;");
SQLiteCommand Command = new SQLiteCommand("SELECT * FROM Auftraggeber", Connection);
SQLiteDataAdapter auftraggeberDA = new SQLiteDataAdapter();
//auftraggeberDA.SelectCommand = Command;
SQLiteCommandBuilder cmd = new SQLiteCommandBuilder(auftraggeberDA);
auftraggeberDA.SelectCommand = Command;
auftraggeberDA.InsertCommand = cmd.GetInsertCommand();
Connection.Open();
auftraggeberDA.Fill(dtauftraggeber);
DataTable srcdtAuftraggeber = new DataTable();
using (var reader = ObjectReader.Create(source.Auftraggeber, "Name", "Strasse", "Ort", "Ansprechpartner"))
{
srcdtAuftraggeber.Load(reader);
}
foreach (DataRow s in srcdtAuftraggeber.Rows)
{
DataRow dr = dtauftraggeber.NewRow();
//dr.BeginEdit();
dr["Name"] = s["Name"];
dr["Strasse"] = s["Strasse"];
dr["Ort"] = s["Ort"];
dr["Ansprechpartner"] = s["Ansprechpartner"];
//dr.EndEdit();
dtauftraggeber.Rows.Add(dr);
}
auftraggeberDA.Update(dtauftraggeber);
//Imprägnierberichte
DataTable dtImpraegnierSource = new DataTable();
using (var reader = ObjectReader.Create(source.Imprägnierungen))
{
dtImpraegnierSource.Load(reader);
}
Command = new SQLiteCommand("SELECT * FROM Impraegnierungen", Connection);
SQLiteDataAdapter imprDA = new SQLiteDataAdapter();
cmd = new SQLiteCommandBuilder(imprDA);
imprDA.SelectCommand = Command;
imprDA.InsertCommand = cmd.GetInsertCommand();
DataTable dtImpr = new DataTable();
imprDA.Fill(dtImpr);
foreach(DataRow s in dtImpraegnierSource.Rows)
{
DataRow dr = dtImpr.NewRow();
dr["Schlauchnummer"] = s["Schlauchnummer"];
dr["DN"] = s["DN"];
dr["Wanddicke"] = s["Wanddicke"];
dr["Laenge"] = s["LinerLänge"];
dr["NochVorhanden"] = s["NochVorhanden"];
dr["Impraegniernummer"] = s["Imprägniernummer"];
dr["ImpraegnierDatum"] = (s["ImprägnierungBeginn"] as KlassenBIB.ImprägnierungStrukture).Zeitstempel.Date.ToShortDateString();
dtImpr.Rows.Add(dr);
}
imprDA.Update(dtImpr);
dtImpr.Clear();
imprDA.Fill(dtImpr);
// Projekt schleife
Command = new SQLiteCommand("SELECT * FROM Projekt",Connection);
SQLiteDataAdapter projektDA = new SQLiteDataAdapter();
cmd = new SQLiteCommandBuilder(projektDA);
projektDA.SelectCommand = Command;
projektDA.InsertCommand = cmd.GetInsertCommand();
Command = new SQLiteCommand("SELECT * FROM Inspektionsobjekt", Connection);
SQLiteDataAdapter objektDA = new SQLiteDataAdapter();
cmd = new SQLiteCommandBuilder(objektDA);
objektDA.SelectCommand = Command;
objektDA.InsertCommand = cmd.GetInsertCommand();
DataTable dtprojekte = new DataTable();
DataTable dtObjekte = new DataTable();
projektDA.Fill(dtprojekte);
objektDA.Fill(dtObjekte);
int projektID = 1;
// Alle Projekte durch gehen
foreach(Projekt projekt in source.Projekte)
{
DataRow projektRow = dtprojekte.NewRow();
projektRow["ID"] = projektID;
projektRow["Nummer"] = projekt.Nummer;
projektRow["Ort"] = projekt.Ort;
projektRow["SanierungsIDPrefix"] = projekt.SanierungsIDPrefix;
projektRow["SanierungsIDSuffix"] = projekt.SanierungsIDSuffix;
int objektID = 1;
// Alle einzelne Inspektionsobjekte
foreach(var inspektionsobjekt in projekt.Objekte)
{
DataRow objektRow = dtObjekte.NewRow();
objektRow["id"] = objektID;
objektRow["ref_projekt_id"] = projektID;
objektRow["StrasseName"] = inspektionsobjekt.StrasseName;
objektRow["Ort"] = inspektionsobjekt.OrtName;
objektRow["Hausnummer"] = inspektionsobjekt.Hausnummer;
objektRow["Projektnummer"] = inspektionsobjekt.Projektnummer;
objektRow["Objektbezeichnung"] = inspektionsobjekt.Objektbezeichnung;
objektRow["VonPunkt"] = inspektionsobjekt.VonPunkt;
objektRow["BisPunkt"] = inspektionsobjekt.BisPunkt;
objektRow["RohrMaterial"] = inspektionsobjekt.RohrMaterial;
objektRow["Kanalrohrweite"] = inspektionsobjekt.Kanalrohrweite;
objektRow["Haltungslaenge"] = inspektionsobjekt.Haltungslaenge;
objektRow["Schachtlaenge"] = inspektionsobjekt.Schachtlaenge;
objektRow["HaltungGemessen"] = inspektionsobjekt.HaltungGemessen.ToString();
objektRow["Bemerkung"] = inspektionsobjekt.Bemerkung;
objektRow["Inspektionsrichtung"] = inspektionsobjekt.Inspektionsrichtung;
objektRow["Sanierungsnummer"] = inspektionsobjekt.Sanierungsnummer;
foreach(Sanierung sanierung in inspektionsobjekt.Sanierung)
{
if(sanierung is InlinerSanierung)
{
InlinerSanierung san = (InlinerSanierung)sanierung;
string searchquery = string.Format("Impraegniernummer = '{0}'",(san.Imprägnierungsbericht as WerkseitigImprägniert).Imprägniernummer);
int refimpID = (int)dtImpr.Select(searchquery).Last()["id"];
}
}
dtObjekte.Rows.Add(objektRow);
objektID++;
}
dtprojekte.Rows.Add(projektRow);
projektID++;
}
projektDA.Update(dtprojekte);
objektDA.Update(dtObjekte);
Connection.Close();
}
public static void MakeNewDatabaseSystem()
@@ -118,7 +284,8 @@ namespace Database
Datenbank.Instance.MainDatenbank.AuftraggeberListe.Add(tempProjekt.Auftraggeber);
}
*/
}
}
}
*/