Zum Inhalt springen

Datenbank in Visual Studio C# WinForm App implementieren


itzzshiro

Empfohlene Beiträge

Hallo zusammen!

 

Und zwar bin ich gerade dabei eine WindowsFormApp zu erstellen über die ich PowerShell Scripts ausführen kann bzw. Befehle/Scripts mir abspeichern und jederzeit (über ein Alias)  aufrufen kann.

Jetzt habe ich versucht eine Datenbank (damit ich Befehle eben permanent abspeichern kann) zu erstellen und habe dabei die von Visual Studio bereits gegebene Variante der Dienstbasierten Datenbank genommen und frage mich gerade warum ich diese Erstellte Datenbank nicht über Datenquellen bei meiner WinFormApp einbinden kann da kommt nur die Meldung: "Dieses Fenster wird für das ausgewählte Projekt nicht unterstützt. Schritte zum Aktivieren der Datenbindung finden Sie hier: https://aka.ms/WinForms/DataBinding", was ich halt nicht verstehe, da man das ja eigentlich in eine WindowsFormsApp einbinden können sollte. Den Link dazu hatte ich bereits aufgerufen aber dort wird prinzipiell nur erklärt wie das mit DataBinding funktioniert usw.

Aber nicht wie ich die Option Aktiviere damit ich diese in meinem jetzigen Projekt nutzen kann.

Übersehe ich irgendetwas richtig banales?

 

Schon einmal danke für eure Hilfe!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mal eine Übersetzung aus einem anderen Forum (https://forums.asp.net/t/2103106.aspx?What+is+service+based+database+in+dotnet)

Zitat

Eine servicebasierte Datenbank ist eine Datenbank, auf die nur über einen Server zugegriffen wird. Sie verwendet eine MDF-Datendatei, das ist das SQL Server-Format. Um eine Verbindung zu einer SQL Server-Datenbank herstellen zu können, muss der SQL Server-Dienst ausgeführt werden, da dieser Ihre Anfragen verarbeitet und auf die Datei zugreift.

Ohne SQL Server kannst du also mit der Datei auch nichts anfangen.

Nur mal so...ich würde ja so nicht arbeiten.

Nimm doch eine SQLite Datenbank, oder sonst eine und greif ordentlich drauf zu.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was möchtest du überhaupt mit der Datenbank erreichen? Solange ich keine großen und/oder komplexe Datenstrukturen persistieren muss, würde ich auch keine Datenbank nehmen, sondern evtl. reicht auch einfach nur eine JSON-Datei, die ich mir einfach in den Speicher lade aber dies ist eigentlich nur ein Detail. Wo die Daten herkommen sollte, im ersten Moment egal sein.

Bearbeitet von Whiz-zarD
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 15 Stunden schrieb KeeperOfCoffee:

Mal eine Übersetzung aus einem anderen Forum (https://forums.asp.net/t/2103106.aspx?What+is+service+based+database+in+dotnet)

Ohne SQL Server kannst du also mit der Datei auch nichts anfangen.

Nur mal so...ich würde ja so nicht arbeiten.

Nimm doch eine SQLite Datenbank, oder sonst eine und greif ordentlich drauf zu.

okay vielen dank!

Ich werd das mal sofort machen und hoffe das da der Geistesblitz kommt :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 12 Stunden schrieb Whiz-zarD:

Was möchtest du überhaupt mit der Datenbank erreichen?

Ich will mit der Datenbank das Ziel verfolgen eine immer abrufbare und erweiterbare Instanz zu haben, welche es mir ermöglicht PowerShell Skripte Abzuspeichern und zu ergänzen damit ich bei der eigentlichen WinFormApp über wenige Klicks ein größeres PowerShell Skript auch ausführen könnte ohne erstmal den Befehl für das ganze raussuchen zu müssen wenn man das halt irgendwann später wieder bräuchte.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Welchen Mehrwert soll denn die GUI haben? Genau so gut kann ich die Skripte doch auch per Kommandozeile ausführen. Mit der GUI hab ich nichts gewonnen. Im Gegenteil. Ich verliere die Möglichkeit die Skripte automatisiert auszuführen bzw. es schwieriger, da ich nun Mausklicks automatisieren müsste.

Ein weiteres Problem ist auch die Wartbarkeit der Skripte, da sie in der Datenbank in deinem CLOB-Feld liegen. D.h. wenn ich die Skripte anpassen oder korrigieren möchte, muss ich erstmal das Skript wieder aus der Datenbank lesen, es dann ändern und wieder in die Datenbank schreiben. Also braucht man noch zusätzliche Werkzeuge.

Wenn du aber unbedingt eine GUI haben willst, könnte man auch eine CSV-, XML- oder JSON-Datei anlegen:

CSV:

NAME;FILE
"Hallo Welt";"C:\Scripts\HalloWelt.ps1"
"CoolScript";"C:\Scripts\CoolScript.ps1"

XML:

<?xml version="1.0" encoding="UTF-8"?>
<scripts>
   <script>
      <name>Hallo Welt</name>
      <file>C:\scripts\HalloWelt.ps1</file>
   </script>
  <script>
      <name>CoolScript</name>
      <file>C:\scripts\CoolScript.ps1</file>
   </script> 
</scripts>

JSON:

[
  {
    "Name" : "Hallo Welt",
    "File" : "C:\\Scripts\\HalloWelt.ps1"
  },
  {
    "Name" : "CoolScript",
    "File" : "C:\\Scripts\\CoolScript.ps1"
  },
]

Die Skripte liegen dann auf der Festplatte und können einfach angepasst und erweitert. Wenn neue Skripte hinzukommen sollen, braucht man nur die Datei anpassen.

Mit entsprechenden Deserialisern (CSVHelper, XmlSerializer, JsonSerializer) kann man daraus eine Liste von Objekten erstellen, die dann benutzt werden können, um die Buttons für die GUI zu generieren.

Es muss nicht immer eine Datenbank sein. Eigentlich ist die Persistenz nur ein Detail deiner Anwendung. Woher die Daten kommen, sollte auch egal sein. Ich denke, dass du schon mit der GUI genug zu kämpfen haben wirst, sodass das Problem der Persistenz auch erstmal warten könnte und du erst mal mit Dummy-Werten arbeitest.

Bearbeitet von Whiz-zarD
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb Whiz-zarD:

Die Skripte liegen dann auf der Festplatte und können einfach angepasst und erweitert. Wenn neue Skripte hinzukommen sollen, braucht man nur die Datei anpassen.

Mit entsprechenden Deserialisern (CSVHelper, XmlSerializer, JsonSerializer) kann man daraus eine Liste von Objekten erstellen, die dann benutzt werden können, um die Buttons für die GUI zu generieren.

Es muss nicht immer eine Datenbank sein. Eigentlich ist die Persistenz nur ein Detail deiner Anwendung. Woher die Daten kommen, sollte auch egal sein. Ich denke, dass du schon mit der GUI genug zu kämpfen haben wirst, sodass das Problem der Persistenz auch erstmal warten könnte und du erst mal mit Dummy-Werten arbeitest.

Vielen Dank erstmal für die umfangreiche Antwort.

Ja ich wollte das gern mit GUI machen, da das ein wenig Nutzerfreundlicher auf mich wirkt als nur über die Konsole.

Grundsätzlich will ich ja das wir diese GUI in der Firma nutzen können um eben diese Skripte angenehm schnell ausführen zu können. An .ps1 Dateien wo ich mir die Skripte abspeichere und vielleicht zentral im Netzlaufwerk liegen lasse hatte ich bereits gedacht wollte es aber erstmal über Datenbanken ausprobieren, da dass das erste war was mir dazu einfiel als Speichermöglichkeit. Aber wenn das, sowie sich das jetzt gerade anhört, viel umständlicher ist als einfach per .ps1 Dateien zu machen, dann denke ich würde ich schauen das ich das so irgendwie hinbekomme. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...