2010-09-24 3 views
1

Plusieurs requêtes doivent être effectuées pour renvoyer l'objet DataTable. Afin d'accélérer le développement, j'ai créé une méthode privée qui devrait retourner l'ensemble de données en prenant la chaîne de requête comme argument.Problèmes SqlDataAdapter

la méthode est la suivante:

private DataTable getDataTable(string query) 
    { 
     DataTable dt = new DataTable(); 
     SqlDataAdapter DA = new SqlDataAdapter(query, conn); 
     try 
     { 
      iStatusIndicator.SetBusy(true); 
      iStatusIndicator.SetStatus("executing query" + query); 
      DA.Fill(dt); 
     } 
     catch (Exception ex) 
     { 
      ... 
     } 
     iStatusIndicator.SetBusy(false); 
     iStatusIndicator.SetStatus(""); 
     return dt; 
    } 

la procédure ne jette pas une exception, mais le DataTable dt est toujours nulle. J'ai essayé d'exécuter une chaîne de requête directement dans l'invite de commande sql et elle renvoie les données comme prévu, donc je ne sais pas quel pourrait être le problème.

Je serais très reconnaissant si quelqu'un d'entre vous a expliqué la cause, suggéré un correctif ou une meilleure méthode pour renvoyer des DataTables en recevant des chaînes de requête.

Merci

Répondre

0
private static DataSet SelectRows(DataSet dataset, 
    string connectionString,string queryString) 
{ 
    using (SqlConnection connection = 
     new SqlConnection(connectionString)) 
    { 
     SqlDataAdapter adapter = new SqlDataAdapter(); 
     adapter.SelectCommand = new SqlCommand(
      queryString, connection); 
     adapter.Fill(dataset); 
     return dataset; 
    } 
} 
0

ce qui est dans votre bloc catch? Par hasard est-ce qu'il y a quelque chose qui fait un sous ou un retour? Cela semble être la seule façon que je peux voir que cette fonction retournerait NOthing (ie Votre fonction n'atteint jamais la ligne "return dt;"

+0

La méthode s'exécute sans exception et retourne dt qui est nul. –

+0

Hmm cela ne semble pas possible! Avez-vous traversé ce code avec le débogueur? Aussi pouvez-vous poster le code qui est dans le bloc catrch ... Je suis curieux! – MikeG