Cosa sbaglio? pensavo qualcosa come cmd.close tra le due istruzioni, ma non si può fare, come risolvo?

codice:
            cn.Open()
            
            cmd = New SqlCommand("select * from Province ORDER BY Capoluogo", cn)
            Provincia.DataSource = cmd.ExecuteReader()
            Provincia.DataTextField = "Capoluogo"
            Provincia.DataValueField = "IDProvincia"
            Provincia.DataBind()
            Provincia.Dispose()
            Provincia.SelectedValue = 1
            
            
            cmd = New SqlCommand("select * from Categorie", cn)
            Categoria.DataSource = cmd.ExecuteReader()
            Categoria.DataTextField = "Categoria"
            Categoria.DataValueField = "IDCategoria"
            Categoria.DataBind()
            Categoria.Dispose()
            Categoria.SelectedValue = 1
            cn.Close()