2013-07-17 77 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); 
}