Zum Inhalt springen

Datenbank auslesen


informatikerin86

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

   

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)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

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