The book who I selected doesn't move to the right in CheckedListBox and the reason is that I can't make an return.his code is good just for first user who I selected

Imprumut = loan
I have 6 tables: 
I have one combobox(from where I select utilizatori(users)) and 2 CheckedListBox(Between first box and second box I have 2 buttons:imprumuta(loan) and restituie(return))
This c# code works just for first user: Utilizator, but something's not good. When I add new utilizator(user) and select it,  the loan will be add in my SQL DataBase, but... the book who I selected doesn't move to the right in CheckedListBox and the reason
is that I can't make an return
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace proiect
    public partial class Imprumut : Form
        MySqlConnection con = new MySqlConnection("DataSource=localhost;UserID=root;database=biblio1");
        //stabilim conexiunea
        MySqlCommand comUser;//interogarea pe baza careia umplem comboBox
        MySqlDataAdapter adaptu;
        DataTable userT = new DataTable();
        MySqlCommand cmdCarti;//interogarea pe baza careia umplem checkListBox
        MySqlDataAdapter adaptCarti;
        DataTable CartiTabel = new DataTable();
        MySqlCommand cmdCartiImprumutate;//interogarea pe baza careia umplem checkListBox
        MySqlDataAdapter adaptCartiImprumutate;
        DataTable CartiImprumutateTabel = new DataTable();
        public int UserId
            get
                return Convert.ToInt32(user.SelectedValue.ToString());
        void Completez_Combo_User()
            try
                comUser = new MySqlCommand("SELECT n.userid, CONCAT(n.UserName) as UserN FROM users n left join userroles us on n.userid=us.userid left join roles r on r.roleid=us.roleid WHERE r.roleid='3'",
con);
                adaptu = new MySqlDataAdapter(comUser);
                adaptu.Fill(userT);
                user.Items.Clear();
                user.DataSource = userT;
                //DataTable din care sunt preluate datele pentru ComboBox user
                user.ValueMember = "UserID";
                //Valoarea din coloana UserID nu se afiseaza in combobox
                user.DisplayMember = "UserN";
                //Eelementele afisate in combobox, preluate din concatenarea mai multor coloane
            catch (Exception ex)
                MessageBox.Show(ex.Message);
        void Completez_CheckList_Carti()
            try
                cmdCarti = new MySqlCommand("SELECT BookID, CONCAT(title, ' ', ISBN,' ',author)as date_carte FROM books WHERE NumberLeft > 0 ORDER BY BookID", con);
                adaptCarti = new MySqlDataAdapter(cmdCarti);
                adaptCarti.Fill(CartiTabel);
                imp.Items.Clear();
                //carti.DataSource=null;
                imp.DataSource = CartiTabel;
                //DataTable din care sunt preluate datele pentru ComboBox carte
                imp.ValueMember = "BookID";
                //Valoarea din coloana BookID nu se afiseaza in combobox
                imp.DisplayMember = "date_carte";
                //Eelementele afisate in combobox, preluate din concatenarea mai multor coloane
            catch (Exception ex)
                MessageBox.Show(ex.Message);
            void Completez_CheckList_Cartires()
                try
                    cmdCartiImprumutate = new MySqlCommand(string.Format("SELECT b.BookID, CONCAT(title, ' ', ISBN,' ',author) as date_carte FROM books b inner join userbooks ub on ub.bookid = b.bookid
WHERE ub.userid = {0} ORDER BY BookID", UserId), con);
                    adaptCartiImprumutate = new MySqlDataAdapter(cmdCartiImprumutate);
                    adaptCartiImprumutate.Fill(CartiImprumutateTabel);
                    res.Items.Clear();
                    //carti.DataSource=null;
                    res.DataSource = CartiImprumutateTabel;
                    //DataTable din care sunt preluate datele pentru ComboBox carte
                    res.ValueMember = "BookID";
                    //Valoarea din coloana BookID nu se afiseaza in combobox
                    res.DisplayMember = "date_carte";
                    //Eelementele afisate in combobox, preluate din concatenarea mai multor coloane
                catch (Exception ex)
                    MessageBox.Show(ex.Message);
        void Inregistrez_imprumut_in_BD()
            int useridu = Convert.ToInt32(user.SelectedValue.ToString()); //useridu = id book
            int bookidi;
            try
                DateTime azi = System.DateTime.Now; //  Data imprumutului
                DateTime atunci = termenul.Value;   //  Data restituirii
                MySqlTransaction tranzactie = con.BeginTransaction();
                MySqlCommand adaugImpr = new MySqlCommand("INSERT INTO bookshistory(UserID, BookID,BorrowDate) VALUES(@UserID, @BookID, CAST(@BorrowDate as datetime))", con);
                MySqlCommand scadCarti = new MySqlCommand("UPDATE books SET numberleft=numberleft-1 WHERE bookid=@bookid", con);
                MySqlCommand adauga_userbooks = new MySqlCommand("INSERT INTO userbooks(userId,bookID)VALUES(@userID,@bookID)", con);
                adauga_userbooks.Transaction = tranzactie;
                adaugImpr.Transaction = tranzactie;
                scadCarti.Transaction = tranzactie;
                try
                    foreach (int i in imp.CheckedIndices)
                        imp.SelectedIndex = i;
                        bookidi = Convert.ToInt32(imp.SelectedValue.ToString());
                        MessageBox.Show(bookidi.ToString());
                                 //bookidi va fi id-ul cartea bifata, pe rand din checklistBox
                                 //Inregistrez in tabela imprumut
                        adaugImpr.Parameters.AddWithValue("@UserID", useridu);
                        adaugImpr.Parameters.AddWithValue("@BookID", bookidi);
                        adaugImpr.Parameters.AddWithValue("@BorrowDate", azi);
                        adaugImpr.ExecuteNonQuery();
                        adaugImpr.Parameters.Clear();
                        adauga_userbooks.Parameters.AddWithValue("@userID", useridu);
                        adauga_userbooks.Parameters.AddWithValue("@bookID", bookidi);
                        adauga_userbooks.ExecuteNonQuery();
                        adauga_userbooks.Parameters.Clear();
                                //Scad numarl de carti disponibile pentru cartea imprumutat
                        scadCarti.Parameters.AddWithValue("@bookid", bookidi);
                        scadCarti.ExecuteNonQuery();
                        scadCarti.Parameters.Clear();
                    tranzactie.Commit();
                catch (Exception ex)
                    tranzactie.Rollback();
                    string message = ex.Message;
                    if (ex.Message.ToLower().Contains("duplicate entry"))
                        message = "Una dintre carti mai exista deja";
                    MessageBox.Show(message);
            catch (Exception ex)
                MessageBox.Show(ex.Message);
        void Inregistrez_restituire_in_BD()
            int useridu = Convert.ToInt32(user.SelectedValue.ToString()); //useridu = id book
            int bookidi;
            try
                DateTime azi = System.DateTime.Now; //  Data imprumutului
                DateTime atunci = termenul.Value;   //  Data restituirii
                MySqlTransaction tranzactie = con.BeginTransaction();
                MySqlCommand modificIstoric = new MySqlCommand("UPDATE bookshistory SET returndate = @returnDate WHERE userID = @userID AND bookID = @bookID", con);
                MySqlCommand adaugCarti = new MySqlCommand("UPDATE books SET numberleft = numberleft + 1 WHERE bookID = @bookID", con);
                MySqlCommand sterge_userbooks = new MySqlCommand("DELETE  FROM userbooks WHERE userID = @userID AND bookID = @bookID", con);
                sterge_userbooks.Transaction = tranzactie;
                modificIstoric.Transaction = tranzactie;
                adaugCarti.Transaction = tranzactie;
                try
                    foreach (int i in res.CheckedIndices)
                        res.SelectedIndex = i;
                        bookidi = Convert.ToInt32(res.SelectedValue.ToString());
                        MessageBox.Show(bookidi.ToString());
                        //bookidi va fi id-ul cartea bifata, pe rand din checklistBox
                        //Inregistrez in tabela imprumut
                        modificIstoric.Parameters.AddWithValue("@UserID", useridu);
                        modificIstoric.Parameters.AddWithValue("@BookID", bookidi);
                        modificIstoric.Parameters.AddWithValue("@returnDate", termenul.Value);
                        modificIstoric.ExecuteNonQuery();
                        modificIstoric.Parameters.Clear();
                        sterge_userbooks.Parameters.AddWithValue("@UserID", useridu);
                        sterge_userbooks.Parameters.AddWithValue("@BookID", bookidi);
                        sterge_userbooks.ExecuteNonQuery();
                        sterge_userbooks.Parameters.Clear();
                        //Scad numarl de carti disponibile pentru cartea imprumutat
                        //adaugCarti.Parameters.AddWithValue("@bookid", bookidi);
                        adaugCarti.Parameters.AddWithValue("@bookid", bookidi);
                        adaugCarti.ExecuteNonQuery();
                        adaugCarti.Parameters.Clear();
                    tranzactie.Commit();
                catch (Exception ex)
                    tranzactie.Rollback();
                    MessageBox.Show(ex.Message);
            catch (Exception ex)
                MessageBox.Show(ex.Message);
        public Imprumut()
            InitializeComponent();
            try
                con.Open();
            catch (Exception ex)
                MessageBox.Show(ex.Message);
            Completez_Combo_User();
            Completez_CheckList_Carti();
            Completez_CheckList_Cartires();
            //selecteaza_carti_utilizator();
            //  Initializez termenul din dateTimePicker la data de peste 15 zile fata de data sistemului
            termenul.Value = System.DateTime.Now.AddDays(15);
        private void imprumuta_Click(object sender, EventArgs e)
            Confirmare c = new Confirmare("Confirmati imprumutul?");
            DialogResult dr = c.ShowDialog();
            if (dr == DialogResult.Yes)
                try
                    Inregistrez_imprumut_in_BD();
                    MessageBox.Show("Imprumutul a fost inregistrat");
                    //Dupa inregistrarea imprumutului o parte din carti nu mai sunt disponibile pentru imprumut
                    //Reincarc in CheckList cu Carti noua lista cu carti ramase dupa imprumut
                    //Pentru asta "resetez" datele din dataTable cartiT (sursa pentru carti.DataSource)
                    CartiTabel.Clear();
                    adaptCarti.Fill(CartiTabel);
                    CartiImprumutateTabel.Clear();
                    adaptCartiImprumutate.Fill(CartiImprumutateTabel);
                catch (Exception ex)
                    MessageBox.Show(ex.Message);
            if (dr == DialogResult.No)
                MessageBox.Show("Imprumutul NU a fost inregistrat");
                imp.ClearSelected();
                //deselecteaza cartea selectat
                foreach (int i in imp.CheckedIndices)
                    imp.SetItemChecked(i, false);
                //debifeaza cartile bifate
            //if (imp.CheckedItems.Count > 0)
            //    //res.Items.Clear();
            //    foreach (string str in imp.CheckedItems)
            //        res.Items.Add(str);//adauga in partea cealalta, imprumuta
            //    while (imp.CheckedItems.Count > 0)
            //        imp.Items.Remove(imp.CheckedItems[0]);
        private void restituie_Click(object sender, EventArgs e)
            Confirmare r = new Confirmare("Confirmati restituirea?");
            DialogResult dr = r.ShowDialog();
            if (dr == DialogResult.Yes)
                try
                    Inregistrez_restituire_in_BD();
                    MessageBox.Show("Restituirea a fost inregistrata");
                    //Dupa inregistrarea imprumutului o parte din carti nu mai sunt disponibile pentru imprumut
                    //Reincarc in CheckList cu Carti noua lista cu carti ramase dupa imprumut
                    //Pentru asta "resetez" datele din dataTable cartiT (sursa pentru carti.DataSource)
                    CartiTabel.Clear();
                    adaptCarti.Fill(CartiTabel);
                    CartiImprumutateTabel.Clear();
                    adaptCartiImprumutate.Fill(CartiImprumutateTabel);
                catch (Exception ex)
                    MessageBox.Show(ex.Message);
            if (dr == DialogResult.No)
                MessageBox.Show("Restituirea NU a fost inregistrata");
                res.ClearSelected();
                //deselecteaza cartea selectat
                foreach (int i in imp.CheckedIndices)
                    res.SetItemChecked(i, false);
                //debifeaza cartile bifate
            if (res.CheckedItems.Count > 0)
                foreach (string str in res.CheckedItems)
                    imp.Items.Add(str);
                while (res.CheckedItems.Count > 0)
                    res.Items.Remove(res.CheckedItems[0]);
        private void button2_Click(object sender, EventArgs e)
            con.Close();
            this.Close();
        //private void selecteaza_carti_utilizator()
        //    res.Items.Clear();
        //    MySqlCommand selectcart = new MySqlCommand("select title from books,userbooks where userbooks.userid='" + user.SelectedValue.ToString() + "' and userbooks.bookid=books.bookid", con);
        //    MySqlDataReader reader = selectcart.ExecuteReader();
        //    try
        //        while(reader.Read())
        //            res.Items.Add(reader["title"]);
        //    catch(Exception ex)
        //        MessageBox.Show(ex.Message);
        //    finally
        //        reader.Close();

Hello Vincenzzo,
This issue seems to be a window form UI implemented related issue, for this i suggest that you could ask it to the windows form forum:
http://social.msdn.microsoft.com/Forums/windows/en-US/home?forum=winforms
The current forum you posted to is used to discuss and ask questions about .NET Framework Base Classes (BCL) such as Collections, I/O, Regigistry, Globalization, Reflection.
Regards.
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey.

Similar Messages

  • What type of movie clips are handled by the ipad? I have shot a movie clip with my canon camera and the file is .AVI.  will this load onto ipad?

    what type of movie clips are handled by the ipad? I have shot a movie clip with my canon camera and the file is .AVI.  will this load onto ipad?

    Per http://www.apple.com/ipad/specs/
    AirPlay Mirroring to Apple TV (2nd and 3rd generation) at 720p
    AirPlay video streaming to Apple TV (3rd generation) at up to 1080p and Apple TV (2nd generation) at up to 720p
    Video mirroring and video out support: Up to 1080p with Apple Digital AV Adapter or Apple VGA Adapter (adapters sold separately)
    Video out support at 576i and 480i with Apple Composite AV Cable (cable sold separately)
    Video formats supported: H.264 video up to 1080p, 30 frames per second, High Profile level 4.1 with AAC-LC audio up to 160 Kbps, 48kHz, stereo audio in .m4v, .mp4, and .mov file formats; MPEG-4 video up to 2.5 Mbps, 640 by 480 pixels, 30 frames per second, Simple Profile with AAC-LC audio up to 160 Kbps per channel, 48kHz, stereo audio in .m4v, .mp4, and .mov file formats; Motion JPEG (M-JPEG) up to 35 Mbps, 1280 by 720 pixels, 30 frames per second, audio in ulaw, PCM stereo audio in .avi file format

  • What is wrong with the Verizon Wireless network in the Florida panhandle.  Can't make or receive calls.  This is bad for business owners who rely on phones.

    It's amazing, I can call Verizon on my cell phone but nobody else how aggivating> They said this only effects prepaid phones nation wide. They are working on restoring service, said it would take around an hour to get things working again.

        Having service issues are no fun Pookstar1969. I can understand how frustrating this is. I can check for any issues in the area. Whats your zipcode and phone type? Are you having issues with prepaid or postpaid service? I look forward to hearing from you.
    KinquanaH_VZW
    Follow us on Twitter @vzwsupport

  • Any way to Lock the Decoration Free Label in place so that the Clean Up Diagram process doesn't move it soemplace unreasonable?

    Any way to Lock the Decoration Free Label in place so that the Clean Up Diagram process doesn't move it soemplace unreasonable? The Clean Up Diagram process moves things to very strange places and often makes the diagram more complicated than it needs to be.
    There should be a way to lock a Decoration Free Label in a location that the Clean Up Diagram will not move it somewhere else.
    Is there such a feature?
    How do you get your Decorations to stay where you put them even after Clean Up Diagram?

    Hey dbaechtel,
    There is a way to do this however you will need to put your Decoration Free Label within a structure.  Check out the following KnowledgeBase article below for more information:
    KnowledgeBase 4TKECSYP: Block Diagram Cleanup Tool Moves Decorations
    Best,
    Chris LS
    National Instruments
    Applications Engineer
    Visit ni.com/gettingstarted for step-by-step help in setting up your system.

  • Hi, can someone please tell me why the spell check in pages doesn't work. I went to preferences and enabled this auto spell checker and have set the language to british english. But still it doesn't work while it works perfectly in TextEdit.

    Hi, can someone please tell me why the spell check in pages doesn't work. I went to preferences and enabled this auto spell checker and have set the language to british english. But still it doesn't work while it works perfectly in TextEdit.

    Inspector > Text > More > Language
    Only applies to selected text, like making it a particular font.
    It is not a setting that sticks. If you continue to paste in text from elsewhere particularly the Internet it will have a different or None language set to it. You need to select it and make it B.E.
    Peter

  • HT5037 The iPhoto Library Upgrader tool doesn't work. I've downloaded it, and follow the directions, but iPhoto still won't open.

    The iPhoto Library Upgrader tool doesn't work. I've downloaded it, and follow the directions, but iPhoto still won't open.

    Your Library is damaged.
    Option 1
    Back Up and try rebuild the library: hold down the command and option (or alt) keys while launching iPhoto. Use the resulting dialogue to rebuild. Choose to Repair Database. If that doesn't help, then try again, this time using Rebuild Database.
    If that fails:
    Option 2
    Download iPhoto Library Manager and use its rebuild function. (In early versions of Library Manager it's the File -> Rebuild command. In later versions it's under the Library menu.)
    This will create an entirely new library. It will then copy (or try to) your photos and all the associated metadata and versions to this new Library, and arrange it as close as it can to what you had in the damaged Library. It does this based on information it finds in the iPhoto sharing mechanism - but that means that things not shared won't be there, so no slideshows, books or calendars, for instance - but it should get all your events, albums and keywords, faces and places back.
    Because this process creates an entirely new library and leaves your old one untouched, it is non-destructive, and if you're not happy with the results you can simply return to your old one.  
    As for goign back: do you have an undamaged library?
    Regards
    TD

  • Obtain a primary token for a user who does not have permission to logon locally

    I would like to know whether it's possible to obtain a primary token for a user who doesn't have permission to log on locally. If yes, what the recommended way is for doing that.
    I called LogonUserW with logon32_logon_network logontype for user which is not allowed to logon locally. It returned impersonation token. I called DuplicateTokenEx to create primary token but it still returned impersonation token.

    A Network Logon is always going to return an impersonation token.  This is by design. 
    A Batch or Service logon would return a Primary Token.  The user would need the corresponding right to return these 2 types of token.  Typically, all users are allowed to generate a Network Token (Impersonation Token) but as you have discovered
    it has limited usage which is by design.
    thanks
    Frank K [MSFT]
    Follow us on Twitter, www.twitter.com/WindowsSDK

  • How can I deploy EFS using Group Policy and automatically encrypt computers for ALL users who login?

    How can I deploy EFS using Group Policy and Active Directory with a goal to automatically encrypt computers for ALL users who login? (NOT an option for me to use BitLocker)
    I was asked to deploy EFS to encrypt the user my documents folder and profile on all of the users laptops. The laptops are in common areas (board meeting rooms, etc) and security of files is a must.
    I successfully created a recovery certificate in AD. I created an OU and setup an EFS policy and users can now login and select to encrypt their own files. The issue is that management would like to have automaticy Encrypt ALL users my documents AUTOMATICALLY
    when a user login.
    Can this be done?
    Please help

    Hi,
    Any update?
    Just checking in to see if the suggestions were helpful. Please let us know if you would like further assistance.
    Best Regards,
    Andy Qi
    TechNet Subscriber Support
    If you are
    TechNet Subscription user and have any feedback on our support quality, please send your feedback
    here.
    Andy Qi
    TechNet Community Support

  • I have an ipod nano 4th generation.  I let my grandson, who has a shuffle, connect his shuffle to my computer and now my itunes recognizes his shuffle and not my nano.  How can I get rid of his shuffle and re-add my nano

    have an ipod nano 4th generation.  I let my grandson, who has a shuffle, connect his shuffle to my computer and now my itunes recognizes his shuffle and not my nano.  How can I get rid of his shuffle and re-add my nano?

    Hi lundjj,
    Thanks for visiting Apple Support Communities.
    You may find the troubleshooting steps in this article helpful if your iPod nano does not appear in iTunes:
    iPod not appearing in iTunes
    http://support.apple.com/kb/ts3716
    This information can also help if you are using multiple devices with a computer:
    iPod for Windows: Connecting multiple iPod devices to iTunes
    http://support.apple.com/kb/ht3622
    Although FireWire and USB connections will allow multiple iPod devices to be connected to the computer at the same time, iTunes for Windows works best with only one iPod connected at a time. If you plan to connect multiple iPod devices to the same computer, eject any iPod devices that you are not using from iTunes.
    All the best,
    Jeremy

  • I am using a Mac Mini. I want to change the file size  in iMovie to MPEG so I can burn the move  to  a disc. There is no "save As" that I can find . What do i do?

    I am using a mac mini. I want to change the file size in iMovie to MPEG so I can burn the movie to a disc. There is no "Save As" that I can find. What do I do?

    Stanley Fayer wrote:
    ... to MPEG so I can burn the movie to a disc. ...
    to create standard-conform DVDs = playable on any DVDplayer, there's much more to do than just converting to mpeg(2)...-
    you need a DVD-authoring app, as iDVD, Burn, Toast ........... drag any iMovie export into it, 'burn'.

  • Is there any where that I can voice why I returned my beloved new Ipad? I was told I could move my Keynote presentations to it and then use it for my business presentations. Unfortunately that turned out to not be true. I need the IPad to work with a remo

    Is there any where that I can voice why I returned my beloved new Ipad? I was told I could move my Keynote presentations to it and then use it for my
    business presentations. Unfortunately that turned out to not be true. I need the IPad to work with a remote.
    The Ipad is on a short cable to my projector. I am usually on a podium 30 feet away. No infra red receiver on the IPad and
    the Iphone remote needs wi fi which is not always available in all the locations I do my teaching and lecturing in.
    If you can build a remote into the Ipad in the future I would really like to use an Ipad to replace my heavier lap top for business travel. Thank You Kathy McNeil.

    "The Ipad is on a short cable to my projector."
    Get a longer cable?

  • I have a 13 inch Macbook Pro. I have bought it just 5 months back. All of a sudden, i am unable to turn the mac on. It doesn't even get Charged. What could be the issue ?

    I have a 13 inch Macbook Pro. I have bought it just 5 months back. All of a sudden, i am unable to turn the mac on. It doesn't even get Charged. What could be the issue ?

    If you're unable to turn it on, let alone even charge it then it definitely sounds like a battery issue to me. I'd wait for someone else to reply just to be sure but I think somehow the battery by the sounds of it must have died. However, I could be very wrong.
    If you're still under applecare which you should be then it should be an easy free fix. Hope this helps!

  • HT4095 I rented a movie from the iTunes Store and the download failed. I can't restart the download without error or rent other movies?  Anyone have this problem and found a solution?

    I rented a movie from the iTunes Store and the download failed. I can't restart the download without error or rent other movies?  Anyone have this problem and found a solution?

    1. Sign out of your Apple ID
    2. Reboot iPad
    3. Sign back in to Apple ID

  • Keep getting an error message that reads, "LR An error has occurred while creating the book on Blurb" An error has occurred while trying to create texts and fonts.  Pleas advise as Blurb has said that it's a LR issue.

    Keep getting an error message that reads, "LR An error has occurred while creating the book on Blurb" An error has occurred while trying to create texts and fonts.  Pleas advise as Blurb has said that it's a LR issue.

    Are you behind a firewall or double NAT??
    What is the device that is immediately plugged into the main modem or router? Has that one been able to update?
    It is plugged in of course isn't it.. no nasty join wireless anywhere??
    The best way to work around these sort of problems is to simplify the network.. Plug each device directly into the main router.. by ethernet. You can trigger the firmware upgrade by wireless but use ipad or iphone version of airport utility and see what happens.

  • Just downloaded DW CC. Bought expensive book that tells me to use "Expanded Workspace" but the only options I see in window or workspace button are "Design" Extract" and one other. No where can I find "Expand" or "Compact" which the books says are the two

    Just downloaded DW CC. Bought expensive book that tells me to use "Expanded Workspace" but the only options I see in window or workspace button are "Design" Extract" and one other. No where can I find "Expand" or "Compact" which the books says are the two choices.

    Glad to be of help .
    I won't be spending any more money on expensive books now that I know you can't actually get one that applies to the latest version.
    Don't get me wrong.  I like books.  Classroom in a Book series is an excellent resource to have.  You will learn a lot from it.  Just don't get side-stepped by Creative Cloud's update schedule.  No publishing house can keep pace with it.   If you stay informed about new releases from Adobe's "What's New" Blogs, you will get your money's worth out of your books.   Online Help (F1) is another good resource to use since it is updated fairly often.
    Nancy O.

Maybe you are looking for