I have a sql server column defined decimal(32,15). When I try to read it using SqlDataReader.GetValue(), I find that the maximum db value that can be accommodated is 79,228,162,514,264. A larger value throws an overflowexception. This is surprising, since the .net decimal type is 128 bits and provides 28 to 29 digits of precision. Can someone explain?