[C#] Probléme de performance avec IsDbNull
J'ai fait un programme qui transfert les données d'un fichier texte via un ODBCDataReader dans une table.
J'ai trouvé les performances un peu faible. J'ai donc utilisé le profiler qui m'indique que 50% du temps d'exécution de ma méthode est occupée par l'exécution de la méthode IsDbNull.
Je dois évidement tester IsDbNull pour chaque champ de chaque enregistrement.
Cette méthode à l'air particulièrement lente. Est-il possible de réaliser le test autrement.
Actuellement je fait:
Citation:
if(!data.IsDBNull(1))
{
field1 = data.GetString(1);
}
Il semble bien que GetString fonctionne rapidement alors qu'il s'effectue dans 99.99% des cas.
Re: [C#] Probléme de performance avec IsDbNull
Citation:
Envoyé par jab
Citation:
if(!data.IsDBNull(1))
{
field1 = data.GetString(1);
}
Et si tu essayes
Code:
1 2 3
| object toto = data[1];
if ( !DBNull.Value.Equals( toto ) )
field1 = Convert.ToString( toto ); |
?
Plus rien n'est demandé au reader, à part la valeur 'brute'. Si le problème de perfs vient du reader, la différence devrait se voir avec ça.