Du bist nicht angemeldet.

r3mote

Tekker Deluxe ♥

  • »r3mote« ist männlich
  • »r3mote« ist der Autor dieses Themas

Beiträge: 150

Dabei seit: 14. Januar 2010

Wohnort: Lübeck

Frühere Benutzernamen: r3mote

Hilfreich-Bewertungen: 48

  • Private Nachricht senden

1

Montag, 29. März 2010, 22:44

MySQL Abfrage in Textbox


Also..
Aufgrund mehrerer Anfragen (In Foren & via ICQ) habe ich mir gedacht einfach mal ein kleines Tutorial zum Thema “Abfrage einer MySQL Datenbank” zu schreiben welches hier zu finden ist.
Fangen wir an..
Wir brauchen:
  1. Visual Basic 2008 (Express oder sonstige)
  2. Eine MySQL Datenbank (Externe Zugriffe müssen gestattet sein)
  3. MySQL Connector für .Net (DOWNLOAD)
  4. 10 Minuten Zeit :D
Zu allererst erstellen wir eine neue Windows Forms Anwendung.
In die eben erstelle Form1 packen wir nun folgendes rein:
  • 2x Buttons
  • 2x Textboxen (txt_name & txt_nachname)
  • 2x Label (Zum Beschriften der Textboxen)
  • 1x Verweis auf MySql.Data.dll & MySql.Web.dll
Ganz wichtig ist dass wir diesen Code zum Importieren der DLL in die erste Zeile schreiben:

Visual Basic Quellcode

1
Imports MySql.Data.MySqlClient


Fangen wir an mit dem Code für Button1 (Get):

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim conn As MySqlConnection
        conn = New MySqlConnection
        conn.ConnectionString = "server=SERVERNAME/HOST;" & "user id=USERNAME;" & "password=PASSWORT;" & "database=DBNAME"

        Dim name As String = (txt_name.Text)
        Dim nachname As String = (txt_nachname.Text)

        Dim myAdapter As New MySqlDataAdapter
        Dim SQLAbfrage As String = "SELECT * FROM benutzer WHERE Name='" + Replace(name, " ", "") + "' AND Nachname='" & Replace(nachname, " ", "") & "'"
        Dim myCommand As New MySqlCommand
        myCommand.Connection = conn
        myCommand.CommandText = SQLAbfrage

        txt_name.Text = SQLAbfrage("SELECT * FROM benutzer WHERE Name")
        txt_nachname.Text = SQLAbfrage("SELECT * FROM benutzer WHERE Nachname")

        myAdapter.SelectCommand = myCommand
        Dim myData As MySqlDataReader
        myData = myCommand.ExecuteReader()
        If myData.HasRows Then
            conn.Close()
            conn.Open()

        Else
            'Nichts
        End If
    End Sub





Mit dem oberen Code holen wir die Daten aus der Datenbank in die Textboxen.
Kommen wir nun zu Button2 (Post):

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim conn As MySqlConnection
        conn = New MySqlConnection
        conn.ConnectionString = "server=SERVERNAME/HOST;" & "user id=USERNAME;" & "password=PASSWORT;" & "database=DBNAME"
        Try
            conn.Open()
        Catch myerror As MySqlException
            'Nichts
        End Try

        Dim myAdapter As New MySqlDataAdapter
        Dim SQLAbfrage As String = "SELECT * FROM benutzer WHERE Name='" + txt_name.Text + "'"
        Dim myCommand As New MySqlCommand
        myCommand.Connection = conn
        myCommand.CommandText = SQLAbfrage

        myAdapter.SelectCommand = myCommand
        Dim myData As MySqlDataReader
        myData = myCommand.ExecuteReader()

        If myData.HasRows = 0 Then
            conn.Close()
            conn.Open()
            Dim registerfinal As New MySqlDataAdapter
            Dim name As String = (txt_name.Text)
            Dim nachname As String = (txt_nachname.Text)
            myCommand.CommandText = "INSERT INTO benutzer(Name, Nachname)" _
                                 & "VALUES('" & name & "','" & nachname & "')"
            myCommand.ExecuteNonQuery()
            conn.Close()
        Else
            'Nichts
        End If
    End Sub



Das ganze müsste jetzt in der Form so aussehen:




Nun brauchen wir natürlich noch um überhaupt Daten lesen oder schreiben zu können die Tabelle in der Datenbank.
Diese Tabelle nennt sich “benutzer” (ohne ” “).
Um diese Tabelle zu erstellen gehen wir einfach (falls vorhanden) in PhpMyAdmin und geben folgenden Code in den Reiter SQL ein:

SQL-Abfrage(n)

1
2
3
4
5
6
DROP TABLE IF EXISTS `benutzer`;CREATE TABLE `benutzer` (
  `ID` int(5) NOT NULL auto_increment,
  `Name` varchar(255) default NULL,
  `Nachname` varchar(255) default NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin


Ich hoffe ich konnte mit diesem Tutorial weiterhelfen ;)
Das Beispielprojekt kann HIER herruntergeladen werden.

NACHTRAG: md5
Um die Datensätze verschlüsselt abzuspeichern, einfach nur folgenden Code in ein Modul namens "md5" schreiben:

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Imports System.Security.Cryptography
Imports System.Text

Module md5

    Public Function MD5StringHash(ByVal strString As String) As String
        Dim MD5 As New MD5CryptoServiceProvider
        Dim Data As Byte()
        Dim Result As Byte()
        Dim Res As String = ""
        Dim Tmp As String = ""

        Data = Encoding.ASCII.GetBytes(strString)
        Result = MD5.ComputeHash(Data)
        For i As Integer = 0 To Result.Length - 1
            Tmp = Hex(Result(i))
            If Len(Tmp) = 1 Then Tmp = "0" & Tmp
            Res += Tmp
        Next
        Return Res
    End Function

End Module


Dann diesen Code einfach einbinden:

Visual Basic Quellcode

1
2
Dim name As String = MD5StringHash(txt_name.Text)
        Dim nachname As String = MD5StringHash(txt_nachname.Text)

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »r3mote« (12. Juni 2010, 19:02)


FR3AK.NET

Registrierter Benutzer

  • »FR3AK.NET« ist männlich

Beiträge: 58

Dabei seit: 11. März 2009

Wohnort: C:\

Frühere Benutzernamen: Cha0s FR3AK; FR3AK.NET

  • Private Nachricht senden

2

Dienstag, 30. März 2010, 02:14

Klasse Tutorial, jedoch wuenschte ich mir eine md5 Funktion dazu schließlich sollte man in .NET anwendungen nicht unbedingt sein pw eintragen da .NET sehr schnell und einfach dekomplimiert werden kann.

St0on

Der Gerät schneidet "Schweißfrei"

Beiträge: 199

Hilfreich-Bewertungen: 4

  • Private Nachricht senden

3

Donnerstag, 22. April 2010, 14:10

Ich find diese MD5 Methode kompakter:

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
Function Md5(ByVal strHash As String) As String
    Dim md5obj As New Security.Cryptography.MD5CryptoServiceProvider
    Dim bytestohash() As Byte = System.Text.Encoding.ASCII.GetBytes(strHash)
    bytestohash = md5obj.ComputeHash(bytestohash)
    Dim strresult As String = ""
    For Each b As Byte In bytestohash
         strresult += b.ToString("x2")
    Next

    Return strresult
End Function


Da dies ohne irgendwelche Imports funktioniert
01010111 01101001 01100101 01110011 01101111 00100000
01100100 01100101 01100011 01101111 01100100 01100101
01110011 01110100 00100000 01100100 01110101 00100000
01100100 01100001 01110011 00111111 00100000 01111000
01000100 01000100 01000100 01000100

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »St0on« (24. April 2010, 19:36)


Alex

Registrierter Benutzer

  • »Alex« ist männlich

Beiträge: 50

Dabei seit: 28. Mai 2010

Wohnort: Köln

  • Private Nachricht senden

4

Samstag, 12. Juni 2010, 14:03

Ich habe mir das Tutorial durchgelesen weil ich auch auf eine MySQL Datenbank zugreifen will, allerdings haben mich die Comments abgeschreckt.
Ich arbeite mit VB 2010. Ist es wirklich möglich, diese .exe Dateien zu dekompilieren und man könnte Username und Passwort auslesen?
Ich habe gegoogelt wegen decompilern aber finde lediglich welche für VB06 abwärts. Ist da was verbessert worden seit VB08?
Weil das Sicherheitsrisiko würde mich zutiefst von VB enttäuschen, das hatte ich von einer Scriptsprache wie dieser nicht erwartet.

Edit: Ich versuche gerade das Tut zum Laufen zu kriegen und muss sagen die Dokumentation zu den einzelnen Befehlen und Zeilen ist knapp, bis nicht vorhanden, leider.
Es ist hier wesentlich ausführlicher erklärt, und das ist lediglich ne Antwort zu ner Frage.
MfG-PWSafe: 95%

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Alex« (12. Juni 2010, 18:51)


r3mote

Tekker Deluxe ♥

  • »r3mote« ist männlich
  • »r3mote« ist der Autor dieses Themas

Beiträge: 150

Dabei seit: 14. Januar 2010

Wohnort: Lübeck

Frühere Benutzernamen: r3mote

Hilfreich-Bewertungen: 48

  • Private Nachricht senden

5

Samstag, 12. Juni 2010, 18:23

.Net Reactor wäre eine Variante dafür ;)

Außerdem handelt es sich bei VB nicht um eine Scriptsprache sondern um eine Programmiersprache..
Scriptsprachen währen z.B. Perl oder Python.

Man kann das ganze über ein PHP-Script natürlich etwas sicherer gestalten.

C0der

Registrierter Benutzer

Beiträge: 265

Dabei seit: 30. November 2008

Frühere Benutzernamen: C0der

Hilfreich-Bewertungen: 12

  • Private Nachricht senden

6

Samstag, 12. Juni 2010, 18:34

VB06 gibt es nicht. Und wenn du VB6 meinst: du kannst das nur im Maschinencode reserven.

Aber bei .NET ist das anders. Dort kann man mit wenig Aufwand den Code zu 100% reserven. Obfuscator verhindern nicht, dass man den Code lesen kann sondern erschweren nur das Lesen.

Alex

Registrierter Benutzer

  • »Alex« ist männlich

Beiträge: 50

Dabei seit: 28. Mai 2010

Wohnort: Köln

  • Private Nachricht senden

7

Samstag, 12. Juni 2010, 20:42

Okay danke für die Aufklärung.
Wenn es mit .Net Reactor sicher wird wäre eine Verlinkung im Tut passend dazu, denn ich denke es passt gut zur Thematik.
Weiterhin fände ich eine schrittweise Erklärung der einzelnen Befehle sinnvoll, denn die Tut´s sollen ja dazu dienen den Lesern einen Lernfaktor zu bieten.
Ich habe es jetzt zum Laufen bekommen allerdings nur in Kombination mit dem von mir (zuletzt) geposteten Link, denn da war die Dokumentation sehr ausführlich und hilfreich.

Ach und der Tip für die Implementierung von Netconnect in VB (Projekt-Verweis hinzufügen...) wäre auch sehr hilfreich gewesen.
MfG-PWSafe: 95%

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Alex« (13. Juni 2010, 09:51)


r3mote

Tekker Deluxe ♥

  • »r3mote« ist männlich
  • »r3mote« ist der Autor dieses Themas

Beiträge: 150

Dabei seit: 14. Januar 2010

Wohnort: Lübeck

Frühere Benutzernamen: r3mote

Hilfreich-Bewertungen: 48

  • Private Nachricht senden

8

Sonntag, 13. Juni 2010, 14:03

Ich glaube du hast da was falsch verstanden.. Mit dem .Net Reactor kann man Quellcode lesen und ihn nicht sicherer machen ;)
Deshalb am besten das Programm auf ein PHP-Script zugreifen lassen und dann via Script auf die DB zugreifen lassen..

SeriTools

Du musst versuchen die Firewall so Einzustellen das es geht!!!

  • »SeriTools« ist männlich

Beiträge: 1 398

Dabei seit: 23. September 2007

Wohnort: Wuppertal/NRW

Frühere Benutzernamen: serials

Hilfreich-Bewertungen: 270

  • Private Nachricht senden

9

Sonntag, 13. Juni 2010, 15:35

r3mote: Du meinst .net Reflector... Wer hat jetzt was falsch verstanden :P

r3mote

Tekker Deluxe ♥

  • »r3mote« ist männlich
  • »r3mote« ist der Autor dieses Themas

Beiträge: 150

Dabei seit: 14. Januar 2010

Wohnort: Lübeck

Frühere Benutzernamen: r3mote

Hilfreich-Bewertungen: 48

  • Private Nachricht senden

10

Sonntag, 13. Juni 2010, 16:23

Upps.. ! Stimmt, du hast Recht ;)
Kann ja mal passieren :)
Also war das was alex schrieb schon soweit richtig..

T1g0r

Registrierter Benutzer

Beiträge: 1 226

Dabei seit: 31. Januar 2007

Hilfreich-Bewertungen: 7

  • Private Nachricht senden

11

Sonntag, 13. Juni 2010, 20:24

@Alex:

Zitat

Ich arbeite mit VB 2010. Ist es wirklich möglich, diese .exe Dateien zu dekompilieren und man könnte Username und Passwort auslesen?
Wenn du weiter gesucht hättest, wärst du auf ein anderes Tutorial gestoßen.
Da ist das Passwort- und Benutzernamenauslesen nicht so ohne weiteres möglich.
[VB.NET] Verbindung zu einer MySQL-Datenbank via PHP-Skript

Ist zwar etwas mehr Arbeit, aber auch sicherer.
www.wintoolz.de
  • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
  • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
  • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

Benutze auch du Ecosia

Tolapai

Registrierter Benutzer

  • »Tolapai« ist männlich

Beiträge: 1

Dabei seit: 15. November 2010

  • Private Nachricht senden

12

Montag, 15. November 2010, 23:28

Ungültige Konvertierung

Hallo,

erstmal sorry, dass ich so einen "alten" Beitrag wieder auspacke.
Aber bei mir funktioniert der Tipp leider nicht.
Wenn ich mir die Daten holen will, bekomme ich immer folgenden Fehler:
Ungültige Konvertierung von der Zeichenfolge SELECT * FROM benutzer WHERE Nam in Typ Integer.

Betrifft die Zeile:

Visual Basic Quellcode

1
txt_Name.Text = SQLAbfrage("SELECT * FROM benutzer WHERE Name")


Datenbank ist erstellt, Verweis ist auch wie beschrieben hinzugefügt.
Könnt ihr mir helfen?

Danke im Voraus!

PS: Post funktioniert einwandfrei!

beule1808

Registrierter Benutzer

  • »beule1808« ist männlich

Beiträge: 31

Dabei seit: 27. Dezember 2007

Wohnort: Jeßnitz

  • Private Nachricht senden

13

Montag, 24. Januar 2011, 13:02

Hallo,

erstmal sorry, dass ich so einen "alten" Beitrag wieder auspacke.
Aber bei mir funktioniert der Tipp leider nicht.
Wenn ich mir die Daten holen will, bekomme ich immer folgenden Fehler:
Ungültige Konvertierung von der Zeichenfolge SELECT * FROM benutzer WHERE Nam in Typ Integer.

Betrifft die Zeile:

Visual Basic Quellcode

1
txt_Name.Text = SQLAbfrage("SELECT * FROM benutzer WHERE Name")


Datenbank ist erstellt, Verweis ist auch wie beschrieben hinzugefügt.
Könnt ihr mir helfen?

Danke im Voraus!

PS: Post funktioniert einwandfrei!
Hallo, ich bekomme den gleichen Fehler.
Könnte bitte jemand von euch helfen?

mfg
Sebastian

Zackth

Registrierter Benutzer

Beiträge: 10

Dabei seit: 5. November 2010

  • Private Nachricht senden

14

Freitag, 9. September 2011, 03:26

SQL-Abfrage(n)

1
2
3
4
5
Fehler
     SQL-Befehl:                   CREATE  TABLE  `benutzer` ( `ID` int( 5  )  NOT  NULL  AUTO_INCREMENT ,
 `Name` varchar( 255  )  default NULL ,
 `Nachname` varchar( 255  )  default NULL ,
 PRIMARY  KEY (  `ID`  ) ) ENGINE  =  MYISAM  AUTO_INCREMENT  =9 DEFAULT CHARSET  = latin           MySQL meldet:    #1115 - Unknown character set: 'latin' 


Gibt es eine alternative?

LaMa5

Co-Administrator

  • »LaMa5« ist männlich

Beiträge: 1 018

Dabei seit: 8. Januar 2004

Wohnort: Magdeburg

Hilfreich-Bewertungen: 110

  • Private Nachricht senden

15

Samstag, 10. September 2011, 23:01

Hi,

1.) Wie wär's mal mit einer VERNÜNFTIGEN Beitragsformatierung?? Ich musste mir das mehrfach ansehen, um überhaupt einen Sinn in Deinen Beitrag hineinzuinterpretieren.

2.) Eine einfache Googlesuche bringt das Ergebnis (Suchworte: mysql character set) --> Erster Treffer!
Und damit's nicht zu kompliziert wird: klick mich

BTW: hiermit kann man sich die Liste an der MySQL-Konsole aufrufen

SQL-Abfrage(n)

1
SHOW CHARACTER SET;



bye ...

LaMa5.
Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
(Autor: Earl Wilson, amerik. Schriftsteller)
---
http://www.serviceteam-md.de

Verwendete Tags

MySQL

Social Bookmarks