Given what you appear to be trying to accomplish, I think the following query would work better: SELECT * FROM test WHERE 1 = 0; And then use: reader.GetName(0); reader.GetDataTypeName(0); EDIT: Alternatively, you can actually use (with your original example code): reader.GetName(2); // "type" reader.GetValue(2); // INTEGER