SqlClient.SqlDataReaderで型指定した条件を返す場合
private T GetSqlDataReader<T>(System.Data.SqlClient.SqlDataReader rd, int cnum) { try { if (!rd.IsDBNull(cnum)) { if (typeof(T) == typeof(string)) { return (T)(object)rd.GetString(cnum); } else if (typeof(T) == typeof(int)) { return (T)(object)rd.GetInt32(cnum); } } return (T)(object)null; } catch(Exception e1) { Console.WriteLine(e1.Message); return (T)(object)null; } }
こういうのを作っておけば
int i = GetSqlDataReader<int>(rd, 1); string s = GetSqlDataReader<string>(rd, 2);
他の条件も入れれるので、効率よく書けます。