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";
}
}
}
}
}