Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋼) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Datenbank in Visual Studio C# WinForm App implementieren

Empfohlene Antworten

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!

  • Autor

Uhm ist das extern oder als erweiterung zu installieren? ^^'

Tut mir leid bin kompletter AnfÀnger was das alles betrifft bin eigentlich auch im FiSi Bereich aber das is gerade so ne Art Eigenprojekt.

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.

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

  • Autor
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 :)

  • Autor
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.

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

  • Autor
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. 

Hi, hat zwar so direkt nichts mit deiner Frage zu tun.
Aber da du AnfĂ€nger bist, wĂŒrde es sich denke ich eher fĂŒr dich lohnen WPF statt Forms zu lernen. 
Forms ist mittlerweile einfach sehr veraltet und wenn du schon von bei den AnfÀngen bist, kannst du ja direkt mit WPF anfangen :)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.