Anzeige

Connection String aus interner Datenbank c#


werner_sg

Erfahrenes Mitglied
#1
Hallo,

ist es möglich den Server Teil eines Sql Connection String aus einer internen Datenbank zu holen?

in etwa das bei der Initializierung der Connection String in eine Textbox geladen wird und folgend die Verbindung zum SQL Server im Netzwerk sich den Server teil aus der TextBox holt.

C#:
            SqlConnection sqlcon = new SqlConnection("Data Source='" + textBox1.Text.Trim() + "';Initial Catalog=PayCard;Integrated Security=True");
da man ja nicht immer vorher die genauen Verbindungsdaten zum Server kennt, und für jedes Netzwerk den Code anpassen ist ja auch nicht das gelbe vom Ei
 

Spyke

Capoeirista
Premium-User
#2
Versteh die Frage nicht, am einfachsten wohl einfach ne Config Datei (INI, XML, oder so)
Aus der die Verbindungsdaten lesen die der Kunde hinterlegt hat und änhlich oben setzen.
 

werner_sg

Erfahrenes Mitglied
#3
Idealer würde ich es aber finden das beim ersten Start und dem einrichten einfach der Pfad zur Datenbank in einer Textbox eingetragen wird, sich dann in eine interne Datenbank schreibt und anschließend immer in die Textbox geladen wird und von dort verarbeitet wird.

Sinn und Zweck ist der unterschiedliche Server Name bei SQL der ja auch den Rechner Name oder die IP beinhaltet.

bei Access ist es relativ einfach zu lösen die Setup und Datenbank über einen Installer z.B. InnoSetup in ein festgelegtes Verzeichnis kopieren und am Ende das Setup vom Programm starten lassen.
 

Spyke

Capoeirista
Premium-User
#4
Wo kommt die interne Datenbank her?
Was ist die interne Datenbank?
Wie wird die interne Datenbank gefunden?

Ich würde einfach eine entsprechende Configdatei im Userverzeichnis anlegen.
In die entsprechend dann deine Einstellungen lesen und schreiben.
(sollte in einem Ordner liegen in dem der User auch ohne Adminrechte lese/schreib zugriff hat).
 

werner_sg

Erfahrenes Mitglied
#5
Hallo Spyke

die Datenbank die ich dafür nutzen wollte einfach eine Access Datenbank die ich passend platziere.

klar geht auch mit Configdatei aber ich denke mal es ist einfacher und schneller erledigt wenn ich das in einer Textbox eingebe und abspeicher.

Es gibt oft viele Wege die zum Ziel führen, meine Frage ist aber immer noch offen ist das möglich und wie.

Bei meinem Versuch den Pfad in eine Textbox zu legen hats nicht funktioniert, entweder weil leider nicht möglich oder weil ich einen Fehler gemacht habe. Wobei ich aber eher von einem Fehler ausgehe da ich schon bei anderen Programmen gesehen habe das dort der Pfad zur Datenbank bzw. die IP der Datenbank einfach nur beim Einrichten in eine Textbox eingegeben werden muss.

Wenn man schon mal dabei ist persönliche Daten zu hinterlegen kann man so direkt den Pfad auch mit anlegen. Ist dann ein Abwasch

Gruß Werner
 

werner_sg

Erfahrenes Mitglied
#6
Hallo Spyke

die Datenbank die ich dafür nutzen wollte einfach eine Access Datenbank die ich passend platziere.

klar geht auch mit Configdatei aber ich denke mal es ist einfacher und schneller erledigt wenn ich das in einer Textbox eingebe und abspeicher.

Es gibt oft viele Wege die zum Ziel führen, meine Frage ist aber immer noch offen ist das möglich und wie.

Bei meinem Versuch den Pfad in eine Textbox zu legen hats nicht funktioniert, entweder weil leider nicht möglich oder weil ich einen Fehler gemacht habe. Wobei ich aber eher von einem Fehler ausgehe da ich schon bei anderen Programmen gesehen habe das dort der Pfad zur Datenbank bzw. die IP der Datenbank einfach nur beim Einrichten in eine Textbox eingegeben werden muss.

Wenn man schon mal dabei ist persönliche Daten zu hinterlegen kann man so direkt den Pfad auch mit anlegen. Ist dann ein Abwasch

Gruß Werner
 

Zvoni

Erfahrenes Mitglied
#7
Werner,
1) Eine INI, XML u.ä. ist de Facto auch nichts anderes als eine Datenbank (sieht halt nur etwas seltsam aus).
Wobei anstatt dem Begriff Datenbank vielleicht "Data Storage" verwenden. Dann ist es deutlicher. In einer INI werden halt auch "Daten gespeichert".
2) Ein Connection-String ist ein String, und wie alle Strings kann man die anzeigen lassen (Textbox), abspeichern lassen (INI etc.), verändern lassen, in andere Strings einfügen/verknüpfen lassen.
Wenn du also sagst, dass es einen Fehler bei dir gab, ist es eher der Inhalt, der falsch ist, als die Methode.
3) Spyke hat natürlich Recht, dass es mit einer INI am einfachsten ist, jedoch darf man eins nicht vergessen:
INI, XML usw. ist relativ einfach als Plain Text auszulesen, wogegen man bei einer Dateibasierten DB (SQLite, Access u.ä.) die Daten verschlüsseln kann.

Ich baue gerade an so ner ähnlichen Nummer (jedoch in Lazarus/Free Pascal), bei welcher sich das Programm die Connection-Daten aus einer lokalen SQLite-DB holt. Die Daten in der SQLite sind verschlüsselt

Meine 2 Cents

EDIT: Mir ist natürlich klar, dass man auch Einträge in einer INI, XML etc. verschlüsseln kann (also die Daten selbst). Ist mMn einfach nur ein Sicherheitsaspekt, den man nicht ausser Acht lassen sollte.
 
Zuletzt bearbeitet:

werner_sg

Erfahrenes Mitglied
#8
Hallo Zvoni

wir können es auch Data Storage nennen :), men Gedanke dahinter ist eigentlich der das ja nicht immer eine lokale Datenbank gebraucht wird, wenn mehrere Systeme auf eine Datenbank zugreifen reicht ja eine zentral.

Diese wollte ich dann einfach beim konfigurieren eintragen lassen
 

Zvoni

Erfahrenes Mitglied
#9
Also wenn ich dich richtig verstanden habe:
Netzwerk mit z.B. 20 User
Pro User-PC soll eine lokale DB/INI/XML (wasauchimmer) die Verbindungsdaten pro Datenbank-Server/Netzwerk "vorhalten"?
 
Anzeige
Anzeige