Exception

Signaler
Messages postés
128
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
19 avril 2007
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
Salut a vous
voulez vous bien m'expliquer de quoi il s'agit dans cette exception et ou qu'est ce qu'il faut corriger? merci d'avance
Détails de l'exception: System.IndexOutOfRangeException: Aucune ligne à la position 0.
Ligne 331 : da6.Fill(ds6);
Ligne 332 :
Ligne 333 : gain1_0.Value = ds6.Tables[0].Rows[0]["gain"];
Ligne 334 :
Ligne 335 : cmd_0.Parameters.Add(gain1_0);

9 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
soit ton dataset est vide soit ta ligne est vide, quand il met indexoutofrange exception ca veut dire que t'essaye d'aller sur une ligne du tableau (on peut considérer le dataset comme un tableau de tableau) qui n'existe pas, si l'index 0 n'existe pas, ben c'est que rien n'existe ;)

tu peux nous montrer le code au dessus pour voir de quoi il s'agit, le dataadapter est bien placé ? la requete est bonne etc...


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
128
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
19 avril 2007

biensur voila le code au dessus:

double p2 = Convert.ToDouble(ds5.Tables[0].Rows[0]["th_tx_power"]);



double t2 = Math.Pow(10,p2/10)/1000;



//PAR2_0.Value = Math.Round(t2,1);


PAR2_0.Value = t2;


cmd_0.Parameters.Add(PAR2_0);


SqlDataAdapter da6 =
new SqlDataAdapter();


DataSet ds6 =
new DataSet();


SqlCommand cmd6 =
new SqlCommand("select_antenna");


SqlParameter mwlink_id6 =
new SqlParameter("@mwlink_id", SqlDbType.VarChar);


SqlParameter site_id6 =
new SqlParameter("@site_id", SqlDbType.VarChar);


cmd6.Connection = connSQL;


cmd6.CommandType = CommandType.StoredProcedure;


mwlink_id6.Value = ds1.Tables[0].Rows[0]["mwlink_id"].ToString();


site_id6.Value = s1;


cmd6.Parameters.Add(mwlink_id6);


cmd6.Parameters.Add(site_id6);


da6.SelectCommand = cmd6;


da6.Fill(ds6);
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
hum ....

en relisant le code, je vois pas ou est l'erreur, t'as essayer de regarder ce qui se passe en debug, ajoute un point d'arret avec F9, puis fais F5, et regarde ce qu'il se passe.


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
128
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
19 avril 2007

bon j'ai inséré un point d'arret mais il ya pas d'erreurs a signaler
peut etre je peux t'expliquer un peu plus le probleme; bon il ya des données que je retire d'une table que je ne connais pas!? parfois ça marche et il me retire les données relative à un lien que je sélectionne et pour d'autres lien ça m'affiche cette page d'erreur
j'ai vu la requete Select antenna mais je n'ai pas trouvé d'ou il retire les données de quel table il ya le select...mais il n'ya pas de from quoi?
Messages postés
128
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
19 avril 2007

bon mon ami, j'ai trouvé quelque chose d'intéressant avec le truc de point d'arret, il ya une erreur a ce niveau :
Détails de l'exception: System.InvalidOperationException: La propriété SelectCommand n'a pas été initialisée avant l'appel de 'Fill'.

Ligne 329 : cmd6.Parameters.Add(site_id6);
Ligne 330 : da6.SelectCommand = cmd6;
Ligne 331 : da6.Fill(ds6);
Ligne 332 :
Ligne 333 : gain1_0.Value = ds6.Tables[0].Rows[0]["gain"];
Messages postés
128
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
19 avril 2007

et mem le message d'erreur a changé , il me dit : impossible de trouver la table 0
comment je vais savoir le nom de cette table par ou il retire ces données?
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
issu de l'aide en ligne de msdn

using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(
queryString, connection);
adapter.Fill(dataset);
return dataset;
}


sinon au pire si l'erreur se produit pas toujours, tu fais un try catch ... mais bon c'est pas normal

par contre pour ton select, c'est une procédure stockée, ca retourne qqchose ??

sinon il faut pas faire comme ca, mais par

jesaisplusquelobjet.executenonquery


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
128
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
19 avril 2007

oui la requete que j'ai select_antenna est une procédure stockée et elle retourne des données lorseque je l'exécute manuellement avec sql server ça marche trés bien et mem pour certains données lors de l'exécution dans ma page aspx ça marche mais pour beaucoup d'autres ça me renvoient ce msg d'erreur
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
ben regarde c'est quand tu met quelle param que ca plante ?

pour tester, tu entoure tout ca d'un bloc try catch

et puis dans le catch tu ecrit l'erreur pour savoir ce qui s'est passé :)


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr