這些擴展方法涉及DataRow
- 即DataTable
... 不IDataReader
(等)。
double? val = reader.IsDBNull(index) ? (double?) null : reader.GetDouble(index);
long? vol = reader.IsDBNull(index) ? (long?)null : reader.GetInt64(index);
你當然可以換那些了作爲實用方法,也許對IDataReader
自己的自定義擴展方法:在VB IIf
,或C# - 你可以做你有條件想要的這裏,雖然
public static class DataReaderExtensions
{
public static int? ReadNullableInt32(this IDataReader reader, int index)
{
return reader.IsDBNull(index) ? (int?)null : reader.GetInt32(index);
}
public static long? ReadNullableInt64(this IDataReader reader, int index)
{
return reader.IsDBNull(index) ? (long?)null : reader.GetInt64(index);
}
public static double? ReadNullableDouble(this IDataReader reader, int index)
{
return reader.IsDBNull(index) ? (double?)null : reader.GetDouble(index);
}
public static string ReadNullableString(this IDataReader reader, int index)
{
return reader.IsDBNull(index) ? null : reader.GetString(index);
}
// etc
}
(對不起,使用C#的例子 - 但你也許可以閱讀C#的比我可以寫準確 vb.net)
謝謝 - 很清楚。 – Yugmorf 2012-02-28 02:15:28