我正在使用一些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]:
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"]