[C#] Tester un DataSet ??????

Tester un DataSet ?????? [C#] - C#/.NET managed - Programmation

Marsh Posté le 26-09-2005 à 18:24:05    

yop yop
 
Je voulais savoir comment tester le résultat de l'exécution d'un DataSet....  par exemple :
 

Code :
  1. DataSet ds = db.ExecuteDataSet("CheckParticipants", idEvents, idPersonne);


 
Donc j'appelle ma procédure stockée "CheckParticipants"

Code :
  1. CREATE PROCEDURE CheckParticipants
  2. (
  3. @idEvents integer,
  4. @idPersonne integer
  5. )
  6. AS
  7. SELECT * FROM Participants WHERE idEvents = @idEvents AND idPersonne = @idPersonne
  8. GO


 
Ensuite dans mon code j'aimerais testé si qqch a été retourné ou pas! Mais là  :pt1cable:  :pt1cable:  :pt1cable:  
 

Code :
  1. // Comme ca? mais ca à pas l'air de marcher!
  2. if(ds.Tables.Count == 0)
  3. {
  4.        return errorMsg;
  5. }


 
Need help :D :)
 
Merci d'avance! @++

Reply

Marsh Posté le 26-09-2005 à 18:24:05   

Reply

Marsh Posté le 26-09-2005 à 18:44:29    

Ben c'est simple. Utilise la propriété Count.
 
ds.Tables["ta table en retour"].Rows.Count

Reply

Marsh Posté le 26-09-2005 à 19:01:23    

ouais mais justement si j'utilise ca :
 
ds.Tables[0].Rows.Count = 0
 
--> si y'a rien de retourné il me dit que Tables[0] n'existe pas..........................

Reply

Marsh Posté le 04-10-2005 à 17:29:43    

Question bête : elle vient d'où cette méthode ?
Ca m'étonne un peu qu'il y a ait une méthode qui prenne exactement le bon nombre de paramètres pour ta procédure stockée à toi... surtout que cette méthode n'est pas dans la documentation du Framework SDK...
 
Sinon, les méthodes du framework elle marchent bien pour les procédures stockées ;)

Reply

Marsh Posté le 06-10-2005 à 13:10:26    

euh, c'est koi les méthodes du framework???

Reply

Marsh Posté le 07-10-2005 à 16:42:42    

public DataSet GetParticipants(SqlConnection dbconn)
{

  // Créer une commande sql
  SqlCommand cmd  = new SqlCommand("CheckParticipants", dbconn)

  // Lui dire que c'est une proc et pas une query
  cmd.CommandType = CommandType.StoredProcedure;
  // ajouter les parametres
  cmd.Parameters.Add(new SqlParameter(("@idEvents", idEvents));
  cmd.Parameters.Add(new SqlParameter(("@idPersonne", idPersonne));

  // Executer la proc
  SqlDataReader reader = cmd.ExecuteReader();
  // si ta proc a retourné qqch
  DataSet ds = null;
  if(reader != null)
  {

    // créer le DataSet
    ds = new DataSet();
    ds.Tables.Add("mes participants" );

    // lire les résultats  (avec "Nom" et "Prenom" des exemples de champs de ta table)    
    while (reader.Read())
    {
      DataRow dr = ds.Tables[0].NewRow();
      dr["Nom"] = reader["Nom"];
      dr["Prenom"] = reader["Prenom"];
    }
  }
  return ds;
}

 
Ahhh.... c'est plus long, c'est sûr... mais au moins :
- ca fonctionne
- tu peux coller du code de contrôle des valeurs retournées avant de remplir ton DataSet (Ca évite que la machine ne fasse n'importe quoi au moment du remplissage)
- tu sais exactement comment est rempli ton DataSet
Et tu peux toujours généraliser le mécanisme en faisant une méthode plus globale.
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed