C# 确定SqlReader字段值的类型

C# 确定SqlReader字段值的类型,c#,sql-server,sql-server-2008,.net-4.5,C#,Sql Server,Sql Server 2008,.net 4.5,我正在做这样的事情: if(dataType == "string") list.Add((string)reader[column]); else if (dataType == "date") list.Add(DbToDate(reader, column)); else if (dataType == "double") list.Add(DbToDouble(reader, column)); else if (dataType == "int") li

我正在做这样的事情:

if(dataType == "string")
    list.Add((string)reader[column]);
else if (dataType == "date")
    list.Add(DbToDate(reader, column));
else if (dataType == "double")
    list.Add(DbToDouble(reader, column));
else if (dataType == "int")
    list.Add(DbToInt(reader, column));
if(reader[column].Type == "string)
    list.Add((string)reader[column]);
else if .....
数据类型是传递给方法的字符串。

我正在想象一个更简单的解决方案,比如:

if(dataType == "string")
    list.Add((string)reader[column]);
else if (dataType == "date")
    list.Add(DbToDate(reader, column));
else if (dataType == "double")
    list.Add(DbToDouble(reader, column));
else if (dataType == "int")
    list.Add(DbToInt(reader, column));
if(reader[column].Type == "string)
    list.Add((string)reader[column]);
else if .....

基本上,Q是-我如何询问读者它给了我什么数据类型?

您可以使用
reader.GetFieldType(I).FullName或reader.GetDataTypeName(I)
其中I是列索引