Bueno, por un lado, siempre es mejor que indiques qué versión de Visual Studio estás usando y también qué versión del .Net, ya que hay algunas diferencias formales entre algunos de ellos.
Por ejemplo, normalmente Visual Studio 2003 admitía el uso de ciertas conversiones objeto y clase, pero a partir de VS2005, esto no sucede.
En el caso, es posible que el problema es que estás trabajando una conversión entre un Object y un String, y esa vinculación no es válida. Como eso falla, entonces sale sin cerrar el DataReader, y cuando intentas abrir otro, no puedes.
VEamos:
Código vb:
Ver originalPrivate Sub textboxcarga1()
Try
Dim cad As New MySqlConnection("Database=Pacientes;Data Source=localhost;User Id=root;Password=utan")
cad.Open()
Dim sql As String = "SELECT * FROM generales WHERE id1 = '" & cmbpacientes.SelectedValue.ToString & "' "
Dim cmd As New MySqlCommand(sql, cad)
Dim dr As MySqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
While dr.Read
Dim value As Object = dr.Item("nombres")
If value IsNot DBNull.Value Then TextBox1.Text = Convert.ToString(value)
value = dr.Item("apellidos")
If value IsNot DBNull.Value Then TextBox2.Text = Convert.ToString((value)
value = dr.Item("ocupacion")
If value IsNot DBNull.Value Then TextBox3.Text = Convert.ToString((value)
value = dr.Item("recomendado")
If value IsNot DBNull.Value Then TextBox4.Text = Convert.ToString((value)
End While
dr.Close()
Catch ex As MySqlException
MessageBox.Show("Error:" & ex.Message)
Return
Catch ex As Exception
MessageBox.Show("Error:" & ex.Message)
Return
End Try
End Sub
De todos modos, creo que el problema mayor está entre la cadena de la primera consulta y el cmbpacientes.SelectedValue, porque esa propiedad de vuelve un Object, y el "&" está definido para la clase String, no para la superior Object.