我差不多要完成这个了。我从aspsnippets获取代码。刚添加了一些我的代码来检查条件。有两个按钮一个登录facebook&获取正在工作的信息然后在第二个按钮上单击它检查我的数据库中是否存在userid(从fb获取)?如果没有,则将其插入db。但是在执行结束时我得到了这个异常
MySql.Data.MySqlClient.MySqlException(0x80004005):已经有一个与此Connection关联的打开DataReader,必须先关闭它。在MySql.Data.MySqlClient.ExceptionInterceptor.Throw(例外的例外)在MySql.Data.MySqlClient.MySqlConnection.Throw(异常前)在MySql.Data.MySqlClient.MySqlCommand.Throw(异常前)在MySql.Data.MySqlClient.MySqlCommand .CheckState()在MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(的CommandBehavior行为)在MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()在login.Button1_Click(对象发件人,EventArgs e)如C:\用户\苏拉杰\桌面\ fbLoginTest \ login.aspx.vb:第43行
已更新
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 ID=@id"
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
答案 0 :(得分:0)
您已经用以下方式打开了连接:
Dim con As New MySqlConnection("Data Source="server";port=3306;Initial Catalog=db;User Id=user;password=password;")
con.Open()
因此,从try..catch子句中删除con.Open()调用。