Non viene letto un pezzo di codice!!!

di Anonimizzato30611 il
5 risposte
Buonasera,
Ho provato a fare il debug di questo frammento di codice, ma la parte in grassetto viene completamente ignorata! Qualcuno può darmi una dritta?
Grazie per l'attenzione!

        If cmbCliente_Fornitore.Text = "CLIENTE/FORNITORE" Then
            nome = "B-SP-A-C-II-1-"
            dbcomm.CommandText = "SELECT Nome FROM Conti WHERE (Nome='" + nome + idn + "')"
            cf = " (C)"
            parent = "B-SP-A-C-II-1"
            reader = dbcomm.ExecuteReader
            While reader.Read
                MsgBox(reader.HasRows)
                If reader.HasRows = False Then
                    dbcomm.CommandText = "INSERT INTO Conti (Nome, Testo, Parent) values ('" + nome + idn + "', '" + Replace(txtNick.Text, "'", "''") + cf + "','" + parent + "')"
                    dbcomm.ExecuteNonQuery()
                End If
            End While
            reader.Close()
            nome = "B-SP-P-D-7-"
            dbcomm.CommandText = "SELECT Nome FROM Conti WHERE (Nome='" + nome + idn + "')"
            cf = " (F)"
            parent = "B-SP-P-D-7"
            reader = dbcomm.ExecuteReader
[b]            While reader.Read
                MsgBox(reader.HasRows)
                If reader.HasRows = False Then
                    dbcomm.CommandText = "INSERT INTO Conti (Nome, Testo, Parent) values ('" + nome + idn + "', '" + Replace(txtNick.Text, "'", "''") + cf + "','" + parent + "')"
                    dbcomm.ExecuteNonQuery()
[/b]
                End If
            End While
            reader.Close()
        End If
        dbconn.Close()

5 Risposte

  • Evidentemente la while è falsa sin dall'inizio.

    E comunque è un ciclo strano
  • Concordo con oregon ,
    inoltre se reader.Read è true ovviamente il reader ha delle righe quindi quel reader.HasRows non sarà mai a false e perciò l'interno dell' if non sarà mai eseguito
  • Grazie per le risposte! Ho risolto togliendo i cicli WHILE. Ora funziona tutto a meraviglia!
    Grazie ancora
  • "A meraviglia" forse è un po' troppo. Se lo scopo è quello di eseguire la INSERT solo se non è già presente un record con quel codice, allora non occorre alcun DataReader. Vedi se può bastare eseguire un ExecuteScalar.
    Inoltre sarebbe meglio concatenare le stringhe con "&" anziché con "+".
Devi accedere o registrarti per scrivere nel forum
5 risposte