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 auslesen

Empfohlene Antworten

Veröffentlicht

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

   

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)

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

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 von TDM

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.

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()

Juhu das klappt!

Meinst du du könntest mir noch verraten wie ich jetzt das Ergebnis in meine Textfelder in Form1 reinbekomme?

LG

Informatikerin

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

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.