ciao,
come da titolo ho un problema riguardante la seguentre funzione che va in "blocco" causa overflow... qlk idea?
codice:void ricorsiva(string userP, string userA) { DataSet DSetR = new DataSet(); DataSet DSetR2 = new DataSet(); string Cnnstr = System.Configuration.ConfigurationSettings.AppSettings["CN1"].ToString(); bool ret2 = false; ret2 = clsFunctions.LoadDataSetFromSqlStatement(Cnnstr, "SELECT kiave1 FROM amicizie WHERE (amicizie.kiave2 = '" + userP + "')", "PROVA2", ref DSetR, true); if (ret2 == true) { if (DSetR.Tables["PROVA2"].Rows.Count > 0) { DSetR.Tables["PROVA2"].Rows[0]["kiave1"].ToString(); int num; num = DSetR.Tables["PROVA2"].Rows.Count; int i; bool risultato; risultato = false; string a; for (i = 0; i < num; i++) { a = DSetR.Tables["PROVA2"].Rows[i]["kiave1"].ToString(); if (a == userA) { risultato = true; break; } else { risultato = false; } if (risultato == true) { nessuna.Text = "percorso tra gli urenti selezionati trovato"; } else { this.ricorsiva(a, userA); } } } else { bool ret3 = false; ret3 = clsFunctions.LoadDataSetFromSqlStatement(Cnnstr, "SELECT kiave2 FROM amicizie WHERE (amicizie.kiave1 = '" + userP + "')", "PROVA3", ref DSetR2, true); if (ret3 == true) { if (DSetR2.Tables["PROVA3"].Rows.Count > 0) { int num2; num2 = DSetR2.Tables["PROVA3"].Rows.Count; int i; bool risultato2; risultato2 = false; string b; DSetR2.Tables["PROVA3"].Rows[0]["kiave2"].ToString(); num2 = DSetR2.Tables["PROVA3"].Rows.Count; for (i = 0; i < num2; i++) { b = DSetR2.Tables["PROVA3"].Rows[i]["kiave2"].ToString(); if (b == userA) { risultato2 = true; break; } else { risultato2 = false; } if (risultato2 == true) { nessuna.Text = "percorso tra gli urenti selezionati trovato"; } else { this.ricorsiva(b, userA); } } } else { nessuna.Text = "L'utente " + userP + " non ha ancora aggiunto nessun utente alla lista degli amici"; } } } } }

Rispondi quotando