diff --git a/Dapper/SqlMapper.cs b/Dapper/SqlMapper.cs index ad7b34293939d7b71fbec9d2a1f1145afd8daf6d..5a5dd95130b82256f35418fa6c781224d867eda3 100644 --- a/Dapper/SqlMapper.cs +++ b/Dapper/SqlMapper.cs @@ -758,8 +758,21 @@ private static object GetStructDeserializer(IDataReader reader) } public static void ThrowDataException(Exception ex, int index, IDataReader reader) { - string name = reader != null && index >= 0 && index < reader.FieldCount ? reader.GetName(index) : "(n/a)"; - throw new DataException(string.Format("Error parsing column {0} ({1})", index, name), ex); + string name = "(n/a)", value = "(n/a)"; + if (reader != null && index >= 0 && index < reader.FieldCount) + { + name = reader.GetName(index); + object val = reader.GetValue(index); + if (val == null || val is DBNull) + { + value = ""; + } + else + { + value = Convert.ToString(val) + " - " + Type.GetTypeCode(val.GetType()); + } + } + throw new DataException(string.Format("Error parsing column {0} ({1}={2})", index, name,value), ex); } private static void EmitInt32(ILGenerator il, int value) {