2013-07-17 78 views
0

我试图从数据库中检索用户选择的数据。用户最多可以选择五个字段在报告中显示,字段是字符串,日期和数字的混合。由于其他报告正在运行,我无法将数据转换为SQL代码中的字符串。由于我不知道数据类型,因此我不能执行datareader.GetSqlString(column),并且由于我不知道用户可能选择的列的名称,所以我无法执行datareader.GetString(datareader。 GetOrdinal(列名))。关于如何在不知道数据类型或列名的情况下从数据库检索值的任何想法?C#从数据库检索数据 - 未知数据类型和未知列名

在此先感谢。

回答

1

您可以使用reader.GetSchemaTable()来获取数据读取器的模式表或reader.GetType(n)reader.GetProviderSpecificType(n)以获取特定字段的数据类型。

然后,您可以利用这些信息来决定调用哪个方法:

if (reader.GetType(n) == typeof(string)) 
{ 
    string value = reader.GetString(n); 
}