Announcement

Collapse
No announcement yet.

SQL-Server -> dataSet -> Byte-Array

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL-Server -> dataSet -> Byte-Array

    Hallo,

    eine Tabelle aus einer SQL-Server-Datenbank wird in ein dataSet "geladen". Der "DataType" einer Spalte dieser Tabelle ist "System.Byte[]". Wenn ich die Datensätze in einem listView anzeige, werden string, integer, etc. richtig dargestellt, während bei besagter Spalte lediglich die Zeichenkette "System.Byte[]" eingetragen wird.

    Wie kann ich die Daten, z.B. in der Form "00EF0A..." anzeigen ?

    Viele Grüße, Hans-Peter

  • #2
    Hallo !
    Du kannst die Struktur z.B. in einer Schleife durchlaufen. Beispiel:
    <PRE>
    System.Byte[] bytestruct = new byte[2] {22,33};
    string bytestring=null;
    foreach (System.Byte b in bytestruct)
    {
    bytestring += b.ToString();
    }
    </PRE>

    MfG
    Sasch

    Comment


    • #3
      Hallo Sascha,

      mein Problem liegt wohl eher im dataSet: Wie greife ich auf die Binärdaten im dataSet zu ?

      <pre>
      dataSet1.MyTable.Rows[i].ItemArray[j]
      </pre>
      bietet mir nur "ToString()", was teilweise auch funktioniert, nur eben mit mit dem ByteArray nicht...Ist ja eigentlich auch einleuchtend; nur, wie realisiere ich den Zugriff?

      Viele Grüße, Hans-Pete

      Comment


      • #4
        Hast Du es so mal probiert ??
        <PRE>
        Byte Value = (Byte)dataSet1.MyTable.Rows[i].ItemArray[j];
        </PRE>

        Ich hoffe ich habe dich jetzt richtig verstanden

        Gruß
        Sasch

        Comment


        • #5
          ja, es wird eine Exception ausgelöst. Die Umwandlung ist ungültig

          Comment


          • #6
            Hallo,

            &gt;Wie greife ich auf die Binärdaten im dataSet zu ?
            <br> <br>
            Das folgende Beispiel demonstriert dies (es wird der binäre Inhalt einer in der Datenbank gespeicherten Datei zurückgeschrieben):
            <pre>
            DataRow aRow;
            aRow = dataSet11.Tables[0].Rows[iCurrentRowIdx];
            <b>byte</b>[] aData = (<b>byte</b>[])aRow[2];
            <b>int</b> iBLObSize = aData.Length;
            FileStream aFS = <b>new</b> FileStream(TextBoxOUT.Text, FileMode.OpenOrCreate, FileAccess.Write);
            aFS.Write(aData, 0, iBLObSize);
            aFS.Close();
            </pre>
            Wenn die Daten erst einmal im Byte-Array <i>aData</i> sind, sollte der Rest kein Problem mehr sein

            Comment


            • #7
              Genau das was ich suche. Vielen Dank Ihr beiden!!!

              Viele Grüße

              Hans-Pete

              Comment

              Working...
              X