Zum Inhalt springen

VB.net neue Datenbank


Bloody Rain

Empfohlene Beiträge

Hallo also mit meinem Programm soll es möglich sein adressen zu verwallten...

so nun kann es forkommen das eine komplett neue Datembank erstellt werden muss. Der name der neuen Datenbank wir din eine Textbox eingegeben. Das habe ich ja soweit auch hinbekommen:

Dim oCat As ADOX.Catalog

Dim sConn As String

oCat = New ADOX.Catalog

sConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source=T:\ " & TextBox1.Text & " .mdb;"

oCat.Create(sConn)

oCat = Nothing

Try

Dim con As DbConnection = New OleDbConnection()

con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source=T:\ " & TextBox1.Text & " .mdb;"

con.Open()

Catch ex As Exception

MsgBox("Fehler beim öfnen/erstellen!", ex.Message)

Finally

MsgBox("Erstellen erfolgreich")

End Try

nun muss diese Datenbank beim erneuten starten des Programmes wieder geladen werden. Da ich aber nicht vorher weiß welche datenbanken alle neu dazukommen kann ich sie ja nicht einfach beim start laden...

hinzu kommt das die daten in einem datagridview angezeit werden müssen ...

Den code der "hinter" der form steht habe ich mir schon angesehen um zu schauen was da alles gemacht werden muss und so wie ich das sehe ist das eine ganze menge ...

Geht das so wie ich das vorhabe überhaupt oder habt ihr einfachere ansätze für mich???

und ja ich habe schon gegooglet aber das hat mich nur noch mehr verwirrt

Danke schonmal LG Bloody rain

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

ein Ansatz neu hinzu gekommenen Datenbanken beim Programmstart zu laden, wäre eine eigene Datenbank anzulegen, in der alle Datenbanken, die neu angelegt werden, gespeichert werden (Name und Connectionstring) Beim Programmstart liest Du die in der DB gespeicherten Connectionstrings ein und kannst so eine Verbindung zu den angelegten DB's herstellen.

Daten im Datagridview anzeigen ist relativ einfach. Dazu lädtst Du die Daten aus der DB-Tabelle in ein Dataset. Dieses Dataset übergibst Du dem Datagridview als Datasource.

MfG

Ronaldus

Bearbeitet von ronaldus
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

ein Hinweis noch zum Datasource binden an das Datagridview: Du musst aus dem Dataset eine besimmte DataTable binden!

Bzw. wie in dem Beispiel den DataMember angeben (ist der Name der DataTable)

Vielleicht hilft Dir folgendes Beispiel weiter:

private void BindToDataSet(DataGrid myGrid){

// Create a DataSet.

DataSet myDataSet = new DataSet("myDataSet");

// Insert code to populate DataSet with several tables.

myGrid.DataSource = myDataSet;

// Use the DataMember property to specify the DataTable.

myGrid.DataMember = "Suppliers";

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja...einfacher ist vielleicht übertrieben. Ich finde es aber komfortabler.

Die Struktur der Xml Datei köntte so aussehen:


<?xml version="1.0" encoding="utf-8"?>

<Datenbanken>

  <Datenbank name="Database1">

    <connectionString>Hier steht der ConnectionString zur Database1</connectionString>

  </Datenbank>

  <Datenbank name="Database2">

    <connectioNString>Hier steht der ConnectionString zur Database2</connectioNString>

  </Datenbank>

</Datenbanken>

Sollte nun etwas hinzugefügt werden, dann wird unter dem Database2-Element ein weiteres eingefügt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

das klingt an un für sich ja nicht so schwehr nur weiß ich nciht wie das funktionieren soll....

der benutzer legt wärend das programm läuft eine neue datenbank an und da kenne ichd en namen ja vorher nciht der wird in eine textbox geschrieben geht denn das trotzdem?

Der Benutzer gibt doch die Zugriffsdaten für die Datenbank ein bzw. diesen müssen doch, bevor die Datenbank im DBMS angelegt wird, feststehen. Denn sonst könnte ja keine DB angelegt werden. Das Xml-Attribut "name" sollte im Grunde genommen nur eine Art Key sein, um den ConnectionString zu identifizieren.

Nach der Eingabe muss der User doch irgendwas klicken?! Auf diesen Klick schreibt eine andere Klasse den eingegebenen String in die XML-Datei.

Bearbeitet von lbm1305
Link zu diesem Kommentar
Auf anderen Seiten teilen

stimmt ...

das problem ist wohl eher das ich viel zu wenig ahnung habe .

also ich habe mich mit klassen noch nciht so beschäftigt geht es wirklich nciht ohne etwas in den xml code zu schrieben und viel wichtiger (ja ****** frage) bleibt der code beim nochmaligem starten des programms auch so oder wird er wieder so geladen wie er anfangs war? ich will ja nciht jedesmal eine neue datenbank anlegen müssen ..

ich weiß ist stelle mich blöd an aber deswegen frag ich ja auch habe nunmal einfach kaum ahnung und dieses fachgesimpel auf den microsoftseiten verstehe ich einfach nicht

Link zu diesem Kommentar
Auf anderen Seiten teilen

stimmt ...

das problem ist wohl eher das ich viel zu wenig ahnung habe .

also ich habe mich mit klassen noch nciht so beschäftigt geht es wirklich nciht ohne etwas in den xml code zu schrieben und viel wichtiger (ja ****** frage) bleibt der code beim nochmaligem starten des programms auch so oder wird er wieder so geladen wie er anfangs war? ich will ja nciht jedesmal eine neue datenbank anlegen müssen ..

ich weiß ist stelle mich blöd an aber deswegen frag ich ja auch habe nunmal einfach kaum ahnung und dieses fachgesimpel auf den microsoftseiten verstehe ich einfach nicht

Alles was in die (Xml)Datei geschrieben wird, bleibt auch da. Außer die Datei wird von Hand überschrieben. Auch das Speichern der ConnectionStrings in einer Datenbank wäre möglich. Diesen Weg finde ich persönlich nicht soo doll. :-)

Hier wäre ein Beispiel für das Erstellen einer Xml Datei. Dies ist aber in C# geschrieben, wobei die Klassenbezeichnungen im .NET gleich sind. VB.NET hat halt nur ne andere Syntax.

CSharp XML - Erzeugen eines XML-Dokuments mit C#. / XmlDocument XmlNode CreateElement AppendChild

Bearbeitet von lbm1305
Link vergessen
Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Xml Datei kannst Du

a) über einen externen Editor erstellen und da bereits bekannte Strings eintragen oder

B) du lässt, wenn die Datei noch nicht exisitiert, diese von Deinem Programm erstellen.

Zum Einlesen der Datei muss dem Programm der Pfad bekannt sein. Daher wäre es ratsam, diese Datei in Dein Programmverzeichnis zu legen.

Es ist Dir überlassen, ob Du in diese Datei nur den ConnectionString schreiben lässt oder noch anderes Zeug, was gespeichert werden sollte.

Du kannst auch alle Daten der Datenbanken in Xml ausgeben lassen. Dann bräuchtest Du keine Datenbank mehr ;-)

Bearbeitet von lbm1305
Rechtschreibung verbessert :-)
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo

ich hatte ähnliches Problem schon mal, habe mir dann die Datenbanken (DB-Name, Server, User, Kennwort) in die Registry geschrieben und kann mit diesen Informationen dann die einzelnen DB`s abrufen.

Gruß Hans-Jörg

Ein Passwort in der Registry? Huuaaahhh

Mittlerweile geht man wieder davon weg, irgend welche Informationen in die Registry zu schreiben. auch wegen möglichen Admin-Kennwortabfragen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hey danke das kling interessant wie funktioniert das denn???

mit dem xml kram komme ich nur sehr langsam voran udn auch ncihtw irklich gut

Working with Windows Registry using VB.NET - CodeProject <-- dort ist es ganz gut beschrieben, damit solltest du zurecht kommen.

lbm1305

Mann kann ja das Kennwort auch verschlüsselt ablegen :-) Hatte früher übrigens auch die Informationen (ohne Kennwort natürlich) in XML abgelegt, für mich war es aber dann auf dauer Praktischer es in die Registry zu legen.

Gruß Hans-Jörg

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