2016-06-02 16 views
0

Ich folgte einem Tutorial im Internet (link), um eine Bildergalerie zu erstellen. Ich habe sie alle arbeiten, aber ich geändert:Fehler bei der Verwendung von MysqlDataAdapter

Private Sub CreateGallery() 
     i = 0 
     RemoveControls() 
     If Directorypath IsNot Nothing Then 
      Dim di As New IO.DirectoryInfo(Directorypath) 
      Dim diar1 As IO.FileInfo() = di.GetFiles("*.jpg").Concat(di.GetFiles("*.bmp")).Concat(di.GetFiles("*.png")).Concat(di.GetFiles("*.gif")).ToArray 
      Dim dra As IO.FileInfo 
      For Each dra In diar1 
       DrawPictureBox(dra.FullName, dra.Name) 
      Next 
     End If 
    End Sub 

zu:

Private Sub CreateGallery() 
     Dim table = New DataTable 
     Using Connection = New MySqlConnection("Server=localhost;User Id=root;Password=barra;Database=pap") 
      Using da = New MySqlDataAdapter("SELECT * FROM filme", Connection) 
       da.Fill(table) 
      End Using 
     End Using 
     i = 0 
     RemoveControls() 
     For Each row As DataRow In table.Rows 
      Try 
       Dim bytes() As Byte 
       bytes = (row("imagem")) 
       Dim memStream As New MemoryStream(bytes) 
       DrawPictureBox(memStream, row("titulo")) 
      Catch ex As Exception 
      End Try 
     Next 
    End Sub 

Es funktionierte gut, die Art, wie ich wollte, als ich versuchte, es an einem anderen Projekt zu tun, es ist mir ein Fehler auf ‚MySqlDataAdapter‘:

Using da = New MySqlDataAdapter("SELECT * FROM filme", Connection) 

die erros sagt: Überlastung Auflösung fehlgeschlagen, da nicht zugänglich ‚Neu‘ kann mit diesen Argumenten

aufgerufen werden

Ich habe fast alles versucht, ich kann es nicht funktionieren lassen.

+0

Isn‘ t sollte es "UserID = root" sein a nd nicht "User Id = root"? Ich denke, dass Platz ein Problem verursacht. Für mich sieht es aus wie ein Fehler mit MySqlConnection, also, wenn Sie gehen, um Connection in die Methode zu übergeben, beschwert es sich darüber, dass Sie keine Version von New finden können, die mit Ihren Argumenten funktioniert. – Dresden

+0

Nun, dann achten Sie auf Intellisense. Wenn Sie 'Using da = New MySqlDataAdapter (' in das Code-Fenster eingeben, wird Intellisense Ihnen sagen, welche Optionen Sie haben. Ignorieren Sie die Informationen nicht auf Knopfdruck. – jmcilhinney

+0

@Dresden Ich habe den Code einfach so in einem anderen Projekt und es Arbeit ist großartig. Ich kopierte zu meinem neueren Projekt und es funktioniert nicht. –

Antwort

0

Ihre Funktion als Klasse umwandeln und rufen:

dim new_creator as yourclass 

...

+0

Eigentlich war das Problem, als ich den Code von meinem älteren Projekt in das neue, visuelle Studio kopiert eine Datei auf dem Projekt namens ich denke "Mysqlconnection.vb" kopiert und das war mein Code, wenn ich die Datei löschte, kam es zurück zu normal –

0

Probieren Sie diese

Private Sub CreateGallery() 
    Dim table As New DataTable 
    Dim Conn As New SqlConnection 
    Conn = New SqlConnection("Initial Catalog=<DataBase>;User ID=sa;password=<password>;Data Source=<ServerName>"") 
    Dim com As String = "" 
    com = "SELECT * FROM Table " 
    Dim getComm As New SqlDataAdapter(com, Conn) 
    getComm.Fill(table) 
    i = 0 
    RemoveControls() 
    For Each row As DataRow In table.Rows 
     Dim bytes() As Byte 
     bytes = (row("Imagee")) 
     Dim memStream As New MemoryStream(bytes) 
     DrawPictureBox(memStream, row("Bro_Path")) 
    End Sub 

und ByVal _FILENAME Als Memory ändern,

Private Sub DrawPictureBox(ByVal _filename As MemoryStream, ByVal _displayname As String) 
Verwandte Themen