Bloody Rain Geschrieben 10. Februar 2010 Geschrieben 10. Februar 2010 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 Zitieren
ronaldus Geschrieben 10. Februar 2010 Geschrieben 10. Februar 2010 (bearbeitet) 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 10. Februar 2010 von ronaldus Zitieren
Bloody Rain Geschrieben 10. Februar 2010 Autor Geschrieben 10. Februar 2010 hey danke ich versuch das gleich mal wenn ich net weiter komme frage ich nochmal danke schön ^^ Zitieren
ronaldus Geschrieben 10. Februar 2010 Geschrieben 10. Februar 2010 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"; } Zitieren
lbm1305 Geschrieben 10. Februar 2010 Geschrieben 10. Februar 2010 Ich würde den Weg über eine XML Datei gehen, in der sämtliche Strings abgelegt werden. Den entsprechenden String kann man sich dann über ein Key zurück geben lassen. Zitieren
Bloody Rain Geschrieben 10. Februar 2010 Autor Geschrieben 10. Februar 2010 wenn das einfacher ist gerne aber ich habe davon so garkeine ahnug wäre nett wenn du das etwas mehr erläutern könntest danke schön Zitieren
lbm1305 Geschrieben 10. Februar 2010 Geschrieben 10. Februar 2010 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. Zitieren
Bloody Rain Geschrieben 11. Februar 2010 Autor Geschrieben 11. Februar 2010 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? Zitieren
lbm1305 Geschrieben 11. Februar 2010 Geschrieben 11. Februar 2010 (bearbeitet) 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 11. Februar 2010 von lbm1305 Zitieren
Bloody Rain Geschrieben 11. Februar 2010 Autor Geschrieben 11. Februar 2010 aso ... kann cih nciht einfach immer beim laden alle datenbanken aus einem bestimmten ordner einbinden??? oder muss ich das für jede einzeln machen? Zitieren
lbm1305 Geschrieben 11. Februar 2010 Geschrieben 11. Februar 2010 aso ... kann cih nciht einfach immer beim laden alle datenbanken aus einem bestimmten ordner einbinden??? oder muss ich das für jede einzeln machen? Andere Frage: Ist es sinnvoll, Resourcen zu verschwenden, die möglicherweise nicht benutzt werden? Zitieren
Bloody Rain Geschrieben 11. Februar 2010 Autor Geschrieben 11. Februar 2010 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 Zitieren
lbm1305 Geschrieben 11. Februar 2010 Geschrieben 11. Februar 2010 (bearbeitet) 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 11. Februar 2010 von lbm1305 Link vergessen Zitieren
Bloody Rain Geschrieben 11. Februar 2010 Autor Geschrieben 11. Februar 2010 also kann ich , wenn ich das richtig verstehe wärend mein programm läuft etwas in die xlmdatei schrieben die zu dem programm gehört ist das richtig? oder sollte ich eigends dazu eine neue xml datei erstellen und die einbinden die nur für die datenbank sache ist ? Zitieren
lbm1305 Geschrieben 11. Februar 2010 Geschrieben 11. Februar 2010 (bearbeitet) Die Xml Datei kannst Du a) über einen externen Editor erstellen und da bereits bekannte Strings eintragen oder 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 11. Februar 2010 von lbm1305 Rechtschreibung verbessert :-) Zitieren
Bloody Rain Geschrieben 11. Februar 2010 Autor Geschrieben 11. Februar 2010 mein chef hatte mir das auch schon vorgeschlagen alle daten in eine xml datei zu schreiben kennst du vll ein gutes buch was mir helfen würde (vorallem für anfänger) denn wie gesagt ich muss mich damit erstmal beschäftigen. danke für deine hilfe so langsam komme ich voran ^^ Zitieren
lbm1305 Geschrieben 11. Februar 2010 Geschrieben 11. Februar 2010 Ein Buch für Anfänger kann ich nicht empfehlen. Es gibt aber sicherlich ein paar Tutorials zum Thema XML. Eventuell ein paar kleine Beispiele suchen und mal nach programmieren, auch wenn man diese eigentlich kopieren könnte. Zitieren
Bloody Rain Geschrieben 11. Februar 2010 Autor Geschrieben 11. Februar 2010 ok danke ich werd mal ein bisschen suchen und selbst versuchen ^^ Zitieren
Gateway_man Geschrieben 11. Februar 2010 Geschrieben 11. Februar 2010 Wenn du nichts gegen Englisch hast kannst du da mal vorbeischaun : w3schools Da wird zum näheren verständnis erstmal die sturkurz etc von xml erläutert. Auch die bekanntesten begrifflichkeiten von SQL - Befehlen kannst du dort nachlesen. Zitieren
HJST1979 Geschrieben 12. Februar 2010 Geschrieben 12. Februar 2010 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 Zitieren
Bloody Rain Geschrieben 12. Februar 2010 Autor Geschrieben 12. Februar 2010 hey danke das kling interessant wie funktioniert das denn??? mit dem xml kram komme ich nur sehr langsam voran udn auch ncihtw irklich gut Zitieren
lbm1305 Geschrieben 12. Februar 2010 Geschrieben 12. Februar 2010 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. Zitieren
HJST1979 Geschrieben 15. Februar 2010 Geschrieben 15. Februar 2010 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 Zitieren
Bloody Rain Geschrieben 19. Februar 2010 Autor Geschrieben 19. Februar 2010 hallo leute mein programm kann inzwischen eine neue datenbank erstellen aber ich habe es trotz suchens einfach nciht gescheft eine neune tabelle zu erstellen ind dieser datenbank also wenn ihr mir da helfen könntet wäre ichs hcon mal einen schritt weiter danke ^^ Zitieren
lbm1305 Geschrieben 19. Februar 2010 Geschrieben 19. Februar 2010 Wie sieht den das SQL-Statement aus, mit der die Tabelle erstellt werden soll? Zitieren
Empfohlene Beiträge
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.