2016-06-05 9 views
0

Ich bin fast über diese zu beenden. Ich habe Code von Aspsnippets genommen. Habe gerade einen Teil meines Codes hinzugefügt, um die Bedingungen zu überprüfen. Es gibt zwei Tasten One tun Login von Facebook & Informationen holen, die dann auf den zweiten Knopf arbeitet klicken sie prüft, ob Benutzer-ID (von fb bekam) ist in meinem db vorhanden sind oder nicht? Wenn nicht, dann fügen Sie es in db ein. Aber am Ende der Ausführung bekomme ich diese Ausnahmefacebook login von & Integration mit Website

MySql.Data.MySqlClient.MySqlException (0x80004005): Es ist bereits ein offener DataReader mit dieser Verbindung verbunden, die zuerst geschlossen werden muss. bei MySql.Data.MySqlClient.ExceptionInterceptor.Throw (Exception Ausnahme) bei MySql.Data.MySqlClient.MySqlConnection.Throw (Exception ex) bei MySql.Data.MySqlClient.MySqlCommand.Throw (Exception ex) bei MySql.Data.MySqlClient.MySqlCommand .CheckState() bei MySql.Data.MySqlClient.MySqlCommand.ExecuteReader (CommandBehavior-Verhalten) bei MySql.Data.MySqlClient.MySqlCommand.ExecuteReader() bei login.Button1_Click (Objektabsender, EventArgs e) in C: \ Users \ Suraj \ Desktop \ fbLoginTest \ login.aspx.vb: Linie 43

AKTUALISIERT

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    If Not String.IsNullOrEmpty(lblId.Text) Then 
     Dim query As String = "Select ID, email From users where [email protected]" 
     con.Open() 
     Dim cmd As New MySqlCommand(query, con) 
     cmd.Parameters.AddWithValue("@id", lblId.Text) 
     Dim dr As MySqlDataReader = cmd.ExecuteReader() 
     If dr.HasRows Then 
      'Do Login Code here 
      Try 
       Dim str As String = "select * from users where ID='" + lblId.Text + "';" 
       Dim cmd2 As New MySqlCommand(str, con) 
       con.Open() 
       Dim da As New MySqlDataAdapter(cmd2) 

       Response.Cookies("User_Type").Value = "users" 
       Response.Cookies("chkusername").Value = lblId.Text 
       Response.Redirect(Request.Url.AbsoluteUri) 
      Catch ex As Exception 
       Response.Write(ex) 
       con.Close() 
      End Try 
     Else 
      Try 
       Dim str1 As String = "INSERT INTO users (ID, DP, displayName) values('" + lblId.Text + "', '" + ProfileImage.ImageUrl.ToString + "', '" + lblName.Text + "')" 
       Dim str2 As MySqlDataReader 
       Dim adapter As New MySqlDataAdapter 
       Dim command As New MySqlCommand 
       command.CommandText = str1 
       command.Connection = con 
       adapter.SelectCommand = command 
       str2 = command.ExecuteReader 
       command.Dispose() 
       con.Close() 
      Catch ex As Exception 
       Response.Write(ex) 
      End Try 
     End If 
     End If 
    End Sub 

Antwort

0

Sie bereits die Verbindung mit geöffneten: Dim con As New MySqlConnection("Data Source="server";port=3306;Initial Catalog=db;User Id=user;password=password;") con.Open() So entfernen Sie den con.Open() cal ls von innerhalb Ihrer try..catch-Klauseln.

+0

Ich habe meinen Code immer noch wenig Fehler bekam geändert. Bitte sehen Sie sich den aktualisierten Post & Error oben an. – SUN

+0

Können Sie meinen Code aussehen nur noch einmal. Ich aktualisiere aber immer noch Problem nicht – SUN

+0

Verwendung zwei Verbindungen gelöst. Eine für jeden Datenleser –