Verbindung MySQL-Datenbank via PHP-Skript - HttpPostRequest Fehler, Netframework 4.0?

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von MA-Maddin.

    Verbindung MySQL-Datenbank via PHP-Skript - HttpPostRequest Fehler, Netframework 4.0?

    Ich habe versucht dieses Tutorial durch zu arbeiten: [VB.NET] Verbindung zu einer MySQL-Datenbank via PHP-Skript
    Im Editor sieht alles normal aus, keine Fehler, doch so bald ich das Debugging starte kommen diese Fehlermeldungen:


    Wenn ich die httprequest.dll aus dem Projekt nehme und nochmal importiere verschwinden die Fehler, bis zum Debugging...
    Ich nutze VB 2010 welches Netframework 4.0 mit installiert.
    Kann jemand mit dem Problem etwas anfangen?
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports HttpPostRequest
    2. Public Class Form1
    3. Public Class cls_Datenbankzugriff
    4. ''' <summary>
    5. ''' Verbindet zu einer MySQL-Datenbank und gibt die angeforderten Daten zurück.
    6. ''' </summary>
    7. ''' <param name="vPostCollection">Erforderlich. Die Parameter welche an das PHP-Script geschickt werden.</param>
    8. ''' <param name="File">Erforderlich. Die Datei auf welcher der Befehl ausgeführt werden soll.</param>
    9. ''' <param name="Fehlerausgabe">Optional. Gibt an, ob die Fehlerausgabe Aktiviert ist.</param>
    10. ''' <returns>Gibt den Rückgabewert des PHP-Scripts zurück.</returns>
    11. ''' <remarks></remarks>
    12. Public Function Zugriff(ByVal vPostCollection As Net.PostCollection, ByVal File As String, Optional ByVal Fehlerausgabe As Boolean = True)
    13. Try
    14. Dim myrequest As Net.HTTPPostRequest = New Net.HTTPPostRequest
    15. Dim Ergebnis As String = myrequest.Create(IO.Path.Combine("http://DeinOrdnerZumFile", File), vPostCollection)
    16. Return Ergebnis
    17. Catch ex As Exception
    18. If Fehlerausgabe = True Then 'Wenn Fehlerausgabe aktiv, den Fehler Ausgeben
    19. MessageBox.Show("Folgender Fehler ist aufgetreten: " & vbNewLine & ex.Message, "Fehler!", MessageBoxButtons.OK, MessageBoxIcon.Error)
    20. End If
    21. Return "Verbindungsfehler"
    22. End Try
    23. End Function
    24. End Class
    25. 'Die Klasse cls_ExtentedList:
    26. Public Class cls_ExtentedList
    27. 'Die einzelnen Daten-Spalten
    28. Public ID As Integer
    29. Public Name As String
    30. Public Nachname As String
    31. Public Anrede As String
    32. Public Straße As String
    33. Public Nr As Integer
    34. ''' <summary>
    35. ''' Gibt die angegebenen Daten zurück, um diese in die Liste einzufügen
    36. ''' </summary>
    37. ''' <returns></returns>
    38. ''' <remarks></remarks>
    39. Public Overrides Function ToString() As String
    40. Return ID & " - " & Name & " - " & Nachname & " - " & Anrede & " - " & Straße & " - " & Nr
    41. End Function
    42. End Class
    43. Public vListe As New List(Of cls_ExtentedList) 'Liste mit den Daten aus der Datenbank
    44. Private Sub Form1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Click
    45. 'Select ausführen
    46. 'Verbindung definieren
    47. Dim Verbindung As cls_Datenbankzugriff
    48. Verbindung = New cls_Datenbankzugriff
    49. Dim myCollection As Net.PostCollection = New Net.PostCollection
    50. 'Parameter für das PHP-Script
    51. myCollection.Add("SQLQuery", "select_all")
    52. 'Verbindung aufbauen und Daten holen/übergeben
    53. Dim Rückgabewert As String = Verbindung.Zugriff(myCollection, "Abfrage.php", False)
    54. End Sub
    55. End Class

    Der Code ist unverändert (bis auf die URL) aus dem Tutorial übernommen. Ich schreibe es nicht in die Antwort im Tutorial, weil ich denke es geht um ein anderes Problem und die Ursache liegt nicht beim Tutorial.

    Edit: Also jetzt hat es ein Bekannter von mir (auch mit VB 2010 und Netframework 4.0) versucht und zwar direkt Dodo´s Code versucht in Verbindung mit der .dll aber gleiche Fehlermeldung. Was kann man tun? Dodo, hast du eine Ahnung? Lösung?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Alex“ ()

    Hey,

    hatte bis eben gerade das gleiche Problem wie du. HttpPostRequest und .NetFramework 4.0.
    Zu Lösen ist das Problem indem du statt ".NET Framework 4.0 Client Profil" das ".NET Framework 4.0" auswählst. Das kannst du beim Erstellen eines neuen Projektes auswählen oder wenn du es im Nachhinein ändern willst, folgendermaßen:
    Doppelklick auf "My Project" im Projektmappen-Explorer, dann auf die Registerkarte "Kompilieren" gehen und dort dann auf "Erweiterte Kompilierungsoptionen...".
    In dem Fenster, was sich öffnet, wählst du dann bei Zielframework ".NET Framework 4.0" aus (man kann auch ein anderes wählen, wichtig ist nur, dass es kein Client Profil ist).

    Grüße!
    Maddin

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MA-Maddin“ ()

    Oups.... kleine Berichtigung:
    Also es ist nur wichtig, dass man kein Client Profil der Frameworks wählt.
    Wenn man ein neues Projekt in vb2010 anlegt wird standardmäßig ".NET Framework 4.0 Client Profil" gewählt.
    Also musst du nicht auf 3.5 sondern einfach auf das komplette 4.0 ändern.

    @Gugi
    Ja, das hab ich ;)

    Grüße!
    Danke, mit so einer hilfreichen Antwort habe ich gar nicht mehr gerechnet, das werde ich (obwohl das Projekt nun anders umgesetzt ist) versuchen noch zu ändern, denn dann habe ich ein besseres Gefühl im Bauch :)

    Edit: Das bedeutet dann aber für jeden User, dass er das Programm lediglich mit der Net Framework 4 Client Version nicht ausführen kann und die komplette Version braucht?