0

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

提前致谢。

4

1 回答 1

1

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

然后,您可以使用该信息来决定调用哪个方法:

if (reader.GetType(n) == typeof(string))
{
    string value = reader.GetString(n);
}
于 2013-07-17T15:48:21.287 回答