2013-07-22 45 views
0

我正在使用某些Sybase查詢閱讀器,但無法找到目前爲止使用列名而不是列號加載數據。你會知道如何?這裏是我目前的讀者,我想改變:使用列名從Sybase查詢閱讀器加載一些數據

var queryReader = TheContext.ExecuteStoredProcedure("dbo.sp_getMyData"); 
try 
{ 
    while (queryReader.Read()) 
    { 
     if (queryReader.GetValue(0) == null) { continue; } 
     int numDaysPending; int.TryParse(queryReader.GetValue(2).ToString(), out numDaysPending); 
     ... 

謝謝!

+0

您可能需要增加更多的情況下,並提供更好的標籤以提高可視性說明你正在使用什麼語言,具體的錯誤信息......別的什麼可以幫助某人確定你有什麼問題。 –

回答

0

我已經找到了答案,只需要生成包含列映射[COLUMNNAME; ColumnID的一些dictionnary:

public Dictionary<String, int> GetColumnsMap(AseDataReader reader) 
{ 
    var columnCount = reader.FieldCount; 
    Dictionary<String, int> columnsMap = new Dictionary<String, int>(); 
    for (int columnId = 0; columnId < columnCount; columnId++) 
    { 
     var columnName = reader.GetName(columnId); 
     if (!columnsMap.ContainsKey(columnName)) 
     { 
      columnsMap.Add(columnName, columnId); 
     } 
    } 
    return columnsMap; 
} 

用法:

brand = columnsMap["Brands"]