Insert rows in the datagridview with a dictionary
Your code is really confusing, not in the least because it is partly in Italian. 



It does seem to me that you've coupled your UI and your back-end, and that's something to avoid. Look into developing an n-tier application so your db related code is in a back-end and all you're exposing to the UI is a collection of some sort with data objects.

And the you can bind that collection to your DataGridView, which is a much nicer solution instead of inserting one row at a time. Ideally you'd abandon WinForms, instead look into more modern technologies like WPF and apply MVVM. But if you're stuck with WinForms there are still ways to apply something like MVP.



That is of course a massive leap from the code you have here, so try refactoring one bit at the time.


Construct a class that can contain the results of your db-query, and fill a collection, so you can properly bind your data instead of inserting rows. 
Beware of strings like "id_nota_lavaggio" and consider defining them as const so you can easily update them if necessary. 
Twice you do Convert.ToInt32(reader["id_nota_lavaggio"]): instead, do it once and store the result in a variable.
I don't know about how well Entity Framework works with MySQL, but there are other ORMs available anyway, so when possible consider abandoning writing ADO and instead work with an ORM.
Comments should tell us why, not what. // Query MySQL is superfluous, and something like // Create a dictionary made by a language key and a description should be told by the code, not the comments (ditto // If there is something in the dictionary).