Ich benutze eine Erweiterungsmethode eine DataRowField für nullGenerisches DataRow Erweiterung
public static string GetValue(this System.Data.DataRow Row, string Column)
{
if (Row[Column] == DBNull.Value)
{
return null;
}
else
{
return Row[Column].ToString();
}
}
Nun überprüfen Ich frage mich, ob ich diese allgemeineren machen könnte. In meinem Fall ist der Rückgabetyp immer Zeichenfolge aber die Spalte könnte auch Int32 oder Datetime
So etwas wie
public static T GetValue<T>(this System.Data.DataRow Row, string Column, type Type)
Warum wollen Sie Zeichenfolge zurück, wenn es ein int oder Datetime ist? Verwenden Sie die ['DataRowExtensions.Field'-Methode] (https://msdn.microsoft.com/en-us/library/system.data.datarowextensions.field (v = vs.110) .aspx), die stark typisiert ist und unterstützt sogar Nullable-Typen. –
Geben Sie ein 'Objekt' anstelle einer Zeichenfolge zurück. Ändern Sie auch Folgendes: if ((Objekt) Zeile [Spalte] == DBNull.Value). Dann müssen Sie den Zellenwert nicht in eine Zeichenfolge zurückgeben. – jdweng