Conversion de int int en string C #

J'ai essayé de charger un INT de ma database SQL-Server dans mon application C # et le convertir en string.

Fondamentalement, c'est la key ID / Primary de la table DB que je veux utiliser comme string. C'est ce que je fais :

ssortingng Variable_ID; Variable_ID = HandleDBNull(reader, "ID"); 

et j'obtiens une exception IndexOutOfRange.

Voici la fonction HandleDBNull:

  private ssortingng HandleDBNull(SqlDataReader r, ssortingng columnName) { if (!r.IsDBNull(r.GetOrdinal(columnName))) return r[columnName].ToSsortingng(); else return Ssortingng.Empty; } 

Cela fonctionne pour les colonnes de string, donc il semble y avoir quelque chose de mal avec la conversion. J'ai déjà essayé Convert.ToSsortingng et j'ai eu la même erreur.

Des idées?

Je suppose que votre columnName et columnOrder sont columnOrder les uns par rapport aux autres. On a tort. Comme ils expriment la même information, l'un est redondant. Je voudrais utiliser à la place:

 // probably should be renamed, btw private ssortingng isDBNull(SqlDataReader r, int columnOrder) { if (!r.IsDBNull(columnOrder)) { return r[columnOrder].ToSsortingng(); } else return ""; } 

évidemment avec:

 Variable_ID = isDBNull(reader, 0); 

même si je ne suis pas tout à fait sûr que je voudrais tout comme des ficelles.

Vous pouvez essayer avec – Parce que votre condition est basée sur columnOrder

  ... return r[columnOrder].ToSsortingng(); 

Suggestion

 private bool isDBNull(SqlDataReader r, ssortingng columnName, int columnOrder) { if (!r.IsDBNull(columnOrder)) { return true; } return false; } 

Simplifiez le code:

 ssortingng Variable_ID; Variable_ID = isDBNull(reader, "ID"); private ssortingng isDBNull(SqlDataReader r, ssortingng columnName) { if (!r.IsDBNull(r.GetOrdinal(columnName))) return r[columnName].ToSsortingng(); else return ssortingng.Empty; }