informatikerin86 Geschrieben 3. April 2009 Teilen Geschrieben 3. April 2009 Hey Leute, ich bin neu hier, habe das Forum eben beim googeln entdeckt. Als Wirtschaftsinformatikerin dürfte ich ja hier auch reinpassen. Ich hoffe keiner lacht über meine Anfrage. Ich bin was VB.net Programmierung angeht ein absoluter Newbie. In meiner Firma ist egal das ich Java perfekt beherrsche, jetzt muss ich eine VB.net Anwendung mit Datenbankzugriff erstellen! Natürlich kann keiner aus der Firma diese Sprache und ich bin auf mich selbst gestellt. Also, wie im Thema steht möchte ich einfach nur eine Tabelle auslesen. Über ein Textfeld soll die Nummer ausgelesen werden über die der passende Datensatz gefunden wird. t3 = TextBox3.Text Dim myconnection As New OleDb.OleDbConnection myconnection.Open() Dim suche As New DataSet Dim abfrage As New OleDb.OleDbDataAdapter abfrage = ((SELECT * FROM Prozessdaten 2641 WHERE SAP-Nr LIKE "t3"), myConnection) abfrage.Fill(suche) So sieht das Ganze momentan aus. Es zeigt mir allerdings immer eine Fehler bei Select an, es wird ein Ausdruck erwartet. Kann mir jemand bitte kurz erklären wo mein Fehler liegt? Viele Grüße informatikerin86 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
truebsalgeblaese Geschrieben 3. April 2009 Teilen Geschrieben 3. April 2009 Probiers mal mit was in der Art: abfrage = ("SELECT..."), myConnection) tsg Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 3. April 2009 Teilen Geschrieben 3. April 2009 Dim myconnection As New OleDb.OleDbConnection [/QUOTE][/QUOTE] Hier den ConnectionString als Parameter übergeben. [quote name='informatikerin86'] [CODE]myconnection.Open() Sowas lieber in eine Try-Catch-Finally-Struktur. Dim abfrage As New OleDb.OleDbDataAdapter abfrage = ((SELECT * FROM Prozessdaten 2641 WHERE SAP-Nr LIKE "t3"), myConnection) Auch hier wieder mit Konstruktorparametern arbeiten: Dim abfrage As New OleDb.OleDbDataAdapter("SELECT * FROM Prozessdaten WHERE SAP-Nr LIKE 't3'", myConnection) Für sowas ist die MSDN immer die erste Anlaufstelle: OleDbConnection-Klasse (System.Data.OleDb) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
informatikerin86 Geschrieben 3. April 2009 Autor Teilen Geschrieben 3. April 2009 Ich komme mir vor wie der letzte depp... ... aber ich verstehe nicht was du damit meinst TDM. Könntest du deine Erklärung bitte versuchen jemandem beizubringen der keine Ahnung davon hat? Try-Catch-Finally kommt mir bekannt vor, das kann ich umsetzen DANKE für die Mühe Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 3. April 2009 Teilen Geschrieben 3. April 2009 (bearbeitet) Könntest du deine Erklärung bitte versuchen jemandem beizubringen der keine Ahnung davon hat? Ich hab mal auf die Schnelle was eingetippt: Public Function readDataset(ByVal sql As String) As DataSet Dim ds As New DataSet() 'das wird zurückgegeben Dim connection As OleDbConnection = Nothing 'die Verbindung Try ' Falls fehler auftreten connection = New OleDbConnection("<connectionString>") 'vgl. mit [url=http://www.connectionstrings.com/]ConnectionStrings.com[/url] connection.Open() 'öffnen Dim da As New OleDbDataAdapter(sql, connection) 'Datenadapter mit Query und Verbindung da.Fill(ds) 'Dataset füllen Catch ex As Exception 'irgendwas geht nicht Debug.WriteLine(ex.Message) 'ausgeben Finally 'falls Verbindung geöffnet wurde, schließen. If (connection IsNot Nothing AndAlso connection.State = ConnectionState.Open) Then connection.Close() End Try Return ds 'Dataset zurückgeben End Function Wäre natürlich sinnvoller, das in eine Klasse zu kapseln, damit die Datenbankverbindung nur einmal aufgemacht und gehalten wird. [Edit] Erklärungskommentare ergänzt. Bearbeitet 3. April 2009 von TDM Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
informatikerin86 Geschrieben 3. April 2009 Autor Teilen Geschrieben 3. April 2009 Danke, das sieht an sich ganz gut aus. Allerdings kommen bei mir zwei Fehler: If (connection IsNot Nothing AndAlso connection.State = ConnectionState.Open) Then connection.Close() einmal sagt er das connection nicht zu boolean kovertiert werden kann und dann erwartet er hinter IsNot eine Klammer. Ich hab das ganze jetzt auch in eine extra Klasse gepackt, logisch das ich diese Anweisung ständig brauche. Das kenne ich ja auch von Java, da allerdings momentan noch gar nichts läuft habe ich versucht es erstmal in einer einzigen Klasse hinzubekommen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 3. April 2009 Teilen Geschrieben 3. April 2009 einmal sagt er das connection nicht zu boolean kovertiert werden kann und dann erwartet er hinter IsNot eine Klammer. hmm, also den Fehler bekomm ich nicht, wenn ich das einfach kopiere Kann es sein, dass du irgendwo eine schließende Klammer oder einen Tag vergessen hast? Ansonsten halt Klammern setzen: If ((connection IsNot Nothing) AndAlso (connection.State = ConnectionState.Open)) Then connection.Close() Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
informatikerin86 Geschrieben 3. April 2009 Autor Teilen Geschrieben 3. April 2009 Juhu das klappt! Meinst du du könntest mir noch verraten wie ich jetzt das Ergebnis in meine Textfelder in Form1 reinbekomme? LG Informatikerin Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 3. April 2009 Teilen Geschrieben 3. April 2009 In dem DataSet befindet sich eine (oder mehrere) DataTable(s). Diese findest du in der Property Tables des Datasets. Dann suchst du einfach anhand der Zeile den Wert den du haben möchtest. Bsp: DataTable table = ds.Tables(0) txtIrgendwas.Text = table.Rows(10)("ID").ToString() ... schreibt den Zellwert ID von Zeile 10 in die Textbox txtIrgendwas. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.