none
Abfrage eine einzelnen Wertes aus MS-SQL-Datenbank mit VB.net

    Frage



  • Hallo,

    ich suche mich kaputt,
    kann jemand helfen?

    Als Programmierer alter Schule weiß ich genau, wo welches Datum zu finden ist, mit Datenbankname, Tabellenname, Spalte, Zeile. Ich schreibe VB in Visual Studio, nicht C. Leider lassen sich die Beschreibungen von C nicht auf VB übertragen. Mein Problem:

    Wie kann ich in VB eine Datenbank öffnen, eine konkrete Tabelle ansprechen und einen konkreten Wert aus einer nach Spalte und Zeile bekannten Tabelle abrufen und einer Variablen zuweisen bzw. aus einer Variablen in eine konkrete nach Spalte und Zeile bekannte Zelle zurückschreiben und die Datenbank dann wieder schließen? Kleine zusätzliche Komplikation: Es kann sich um jeden beliebigen Datentyp (Text, Datum, Zahlen usw.) handeln, ich weiß aber selbstverständlich vorher, was kommen wird.

    Ich weiß, das ist eigentlich keine Datenbankaufgabe, aber aus Gründen der Datenmenge brauche ich mehr als nur Excel und den relationalen Datenbankzugriff auf jede einzelne Speicherstelle.

    Vielleicht weiß ja jemand, wie das geht, ordentlich beschrieben ist es jedenfalls nicht. Im Voraus besten
    Dank


    Spockspockspock

    Fortschritt ist nicht, das Alte abzuschaffen, sondern das schlechte Alte durch etwas besseres zu ersetzen, das gute Alte aber zu erhalten, bis es etwas wirklich besseres gibt.


    Mittwoch, 30. Januar 2019 09:20

Antworten

Alle Antworten

  • Ich bin jetzt nicht der VB Spezialist, aber vielleicht suchst Du etwas in dieser Richtung?

    How to display query results from SQL server in VB?


    Einen schönen Tag noch, Christoph - http://www.insidesql.org/blogs/cmu

    Mittwoch, 30. Januar 2019 09:27
  • Hi,

    Dim Result           As String
    
    Dim ConnectionString As String = "SERVER=<ServerNameOrderIpAdresse>;ADDRESS=<ServerNameOrderIpAdresse>,<TcpPortnummer>;UID=<Benutzername>;PWD=<Passwort>;DATABASE=<Datenbank>"
    Dim Connection       As New SqlConnection( ConnectionString )
    Dim Command          As New SqlCommand( "SELECT <Spalte> FROM <Tabelle> WHERE ID = 1", Connection )
        Connection.Open()
    
        Result = Command.ExecuteScalar().ToString()
    
        Connection.Close()
        Connection.Dispose()


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Mittwoch, 30. Januar 2019 11:31
    Moderator
  • Und ein Update mit Parametern sieht so aus:

    Dim sql = "UPDATE dbo.Tabelle " & _
              "SET Feld1 = @wert " & _
              "WHERE ID = @id"
    
    Using conn As New SqlConnection(connectionstring)
        Using cmd As New SqlCommand(sql, conn)
            cmd.Parameters.AddWithValue("@wert", wert)
            cmd.Parameters.AddWithValue("@id", id)
            conn.Open()
            cmd.ExecuteNonQuery()
        End Using
    End Using


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Mittwoch, 30. Januar 2019 11:53
  • Da würde ich mich mal so langsam einarbeiten, da "alte Schule" hier nicht mehr anwendbar ist.

    https://docs.microsoft.com/de-de/dotnet/visual-basic/sample-applications

    https://www.tutorialspoint.com/vb.net/


    • Bearbeitet bfuerchau Mittwoch, 30. Januar 2019 15:02
    Mittwoch, 30. Januar 2019 15:02
  • Hallo,

    @ Stefan Falz: Danke für die Textbereinigung. Die "merkwürdigen Tags" sind keine. Ich schreibe meine Texte in Office2000 unter Win2000 (immer noch best Windows eva). Leider verstehen die neuen Versionen Win2K-Steuerzeichen zum Teil nicht mehr und weisen dann "merkwürdige Tags" aus.

    @ Stefan und Olaf Helper: Danke für den Code. Hätte lange danach suchen müssen, da ich nur Assembler und Basic gelernt habe ...

    @ bfuerchau: Danke für die Links. Habe reingeschaut, aber für mein derzeitiges Projekt nichts nützliches gefunden. Schreibe an einer Simulation, die ausschließlich auf Algorithmen sprich Formeln basiert, ohne jede Vorgabe. Weil sie politische Meinungen prüfen soll (z.B. erhöht eine Senkung der Steuersätze wirklich die Steuereinnahmen?), kann man keine Vorgaben verwenden, nur Formeln. 99% mit Ausnahme der Datenspeicherung könnte man daher am Leichtesten im guten alten Commodore-Basic schreiben - aber was wird schon einfacher. Old School  und zwar ganz old - nicht einmal Methoden und Eigenschaften nützen irgendwas, Rechenarten, Arrays und Kontrollstrukturen reichen völlig - funktioniert dafür recht gut. Trotzdem danke.


    Fortschritt ist nicht, das Alte abzuschaffen, sondern das schlechte Alte durch etwas besseres zu ersetzen, das gute Alte aber zu erhalten, bis es etwas wirklich besseres gibt.

    Dienstag, 19. Februar 2019 13:14