Varbinary - Mysql zu String - VB.Net ?

07/11/2013 12:29 |★|UnReaL#1

Hey Leute. Von Anfang an sei gesagt, ich bin noch Anfänger, also wenn man das ganze offensichtlich leicht lösen kann, seid bitte nicht zu böse zu mir. :D

Also, ich habe für mich ein kleines Programm erstellt wo man in einer MySQLTabelle nach einem Item (Name) suchen kann, und anschließend soll die ID von dem Item & der Itemname ausgegeben werden. Ich habe das ganze mit 2 Listboxen & einem MysqlDataReader gemacht.

Code:
Imports MySql.Data.MySqlClient
Public Class Hauptfenster
    Public con As New MySqlConnection
    Public cmd As New MySqlCommand
    Public dreader As MySqlDataReader

    Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
        If e.KeyCode = Keys.Enter Then
            cmd.CommandText = "SELECT * FROM item_proto WHERE locale_name = '" & TextBox1.Text & "'"
            ListBox1.Items.Clear()
            ListBox2.Items.Clear()
            Try
                con.Open()
                dreader = cmd.ExecuteReader
                Do While dreader.Read
                    ListBox1.Items.Add(dreader("vnum"))
                    ListBox2.Items.Add(dreader("locale_name"))
                Loop
                con.Close()
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical, "ItemTool - Fehler")
            End Try
        End If
    End Sub
End Class
con.connectionstring und cmd.connection wurden schon in einer anderen Form deklatiert.

Aufjedenfall ist mein Problem nun, dass das Item zwar gefunden wird, der name wird allerdings nicht angezeigt sondern als "Byte[]-Array" dargestellt, was wahrscheinlich daran liegt, dass der Type dieser Spalte auf varbinary ist.

Hier ein Screen:

[Only registered and activated users can see links. Click Here To Register...]

Kann ich das irgendwie umkonvertieren oder anderst machen ? :)

LG.

07/11/2013 12:31 'Aleo#2
Keine MySql Bibliotheken benützen !!
07/11/2013 12:34 |★|UnReaL#3
Was kann ich anstattdessen benutzen ?
07/11/2013 13:31 MartPwnS#4
Schwachsinn ..

Quote:
Dim locale_name As String = System.Text.ASCIIEncoding.ASCII.GetString(Dein_Arr ay)
MFG
MartPwnS
07/11/2013 13:47 |★|UnReaL#5
Dankeschön :)

Und was ist Schwachsinn ?
07/11/2013 13:50 MartPwnS#6
Quote:
Keine MySql Bibliotheken benützen !!
Das ist schwachsinn...

Egal wie, du bekommst immer ein ByteArray zurück, da die Namen, wie du schon sagtest, als varbinary gespeichert werden.Du musst sie also zwingend konvertieren.

Mfg
MartPwnS
07/11/2013 14:26 |★|UnReaL#7
Achso. :D
Also vielen Dank schonmal
Habe nurnoch eine Frage, undzwar werden jetzt ü ö ä usw. als ? angezeigt, kann man das noch irgendwie umgehen ? :)
07/11/2013 15:04 MartPwnS#8
Quote:
Dim enc As Encoding = Encoding.GetEncoding("ISO-8859-1")
Dim locale_name As String = enc.GetString(Array)
So vllt Pseudocode ungetestet.

Mfg
MartPwnS
07/11/2013 18:42 'Aleo#9
Quote:
Originally Posted by MartPwnS View Post
Das ist schwachsinn...

Egal wie, du bekommst immer ein ByteArray zurück, da die Namen, wie du schon sagtest, als varbinary gespeichert werden.Du musst sie also zwingend konvertieren.

Mfg
MartPwnS
Was heißt da Schwachsinn, MySql Daten im Programm angeben ist die größte Sicherheitslücke ever. Php Datein erstellen und diese per WebRequest aufrufen. Sei lieber leise Mart
07/11/2013 18:43 MartPwnS#10
Json etc wird er wohl kaum für einen kleinen privaten server benötigen für mehr reicht das tool auch nicht...

Warum unnötig kompliziert ?

Mfg
MartPwnS
07/11/2013 18:57 |★|UnReaL#11
Jop is lediglich für mich gedacht. So dumm bin ich dann auch mal wieder nicht, so sensieble Daten direkt anzugeben. Ach und Mart, leider immernoch der gleiche Effekt mit dem Fragezeichen. Dazu hätte ich noch eine Frage, wie kann ich den MySQLBefehl so umschreiben, dass nicht auf klein & Großschreibung geachtet wird ?

LG.
07/11/2013 19:15 MartPwnS#12
Poste mal die bytes aus der Datenbank die diesen Fehler aufweisen.

Quote:
Select * From db.table Where locale_name Like 'giftschwert +9'
Mfg
MartPwnS