MSSQL varbinary(50) in string speichern

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von 3daycliff.

    MSSQL varbinary(50) in string speichern

    Hallo zusammen,
    ich habe hier ein kleines Problem wo ich aktuell nicht weiterkomme.

    In einer importierten DB auf einem MSSQL 2017 Server, hat eine Spalte lieferhash den Datentyp varbinary(50). Es handelt sich um einen Hexadecimal Wert in der Form 0x495295DB2FAD0E663AB5855DC1A68977CC164111 dieser Wert kann da sein oder auch nicht.
    Ich muss diesen lieferhash 1 zu 1 so einlesen wie er in der DB steht, da er in einem weiteren Workflow Schritt benötigt wird. Also ablösen / abändern ist keine Option, da dies ein Migrations Projekt ist und ansonsten die gesamte Datenbank geändert werden müsste.

    Ich habe schon einige Varianten durchprobiert, bis hier hin kommt er ohne Probleme...

    sOrderkopfArray(14) = IIf(IsDBNull(DBDatareader.Item("lieferhash")), "", System.Text.Encoding.ASCII.GetString((DBDatareader.Item("lieferhash"))))

    es muss mit irgendeinem Encoding doch möglich sein diesen MD5 Wert zu lesen und ins Array zu packen!?!

    Hat einer hier vllt. ein Bsp. Tutorial was man da nehmen kann, ich seh grad den Wald vor lauter Bäumen nich mehr.

    Danke schon mal.
    VG steel
    Wie kommst du darauf, dass es ein MD5-Hash ist? MD5 hat 128bit, dein Beispiel-Hash hat aber 160bit (SHA1?).

    Zur eigentlichen Frage:
    Den Wert kannst du vermutlich als byte Array bekommen:

    C#-Quellcode

    1. byte[] hash = (byte[])reader["lieferhash"];


    Für die Darstellung als Hex-String findest du bei der Suchmaschine deiner Wahl unter "byte array to hex string" sicher etwas.