我正在使用WCF服务来获取另一个数据库的数据。 有一个webmethod GetAnalyst可以返回一个dataSet。
public DataSet GetAnalysts()
{
}
分析师名单出现在第一个表格中:
List<Analyst> Analysts = new List<Analyst>();
DataSet ds = null;
try
{
ds = EServiceClient.GetAnalysts();
}
if (ds != null)
{
foreach (DataRow row in ds.Tables[0].Rows)
{
var analyst = new Analyst()
{
Name = row[1].ToString(),
LastName = row[2].ToString(),
PhoneNumber = row[3].ToString(),
Email = row[4].ToString()
};
sectorService.SetSectorByName(ref analyst, row[0].ToString());
Analysts.Add(analyst);
}
}
问题是索引发生了变化,有时名称是第一个,有时候是第2列....
唯一能解决的问题是列的标题。例如,包含名称的列的标题是Name ....
如何根据标题检索属性。
由于
答案 0 :(得分:0)
您可以使用row["columnname"].ToString()
根据实际列名而不是列索引来检索数据。
答案 1 :(得分:0)
我刚刚写了一个方法来根据标题值
获取索引public virtual int GetIndexByCaption(string caption, DataTable dt)
{
int columnIndex = -1;
try
{
foreach (DataColumn column in dt.Columns)
{
if (column.Caption == caption)
{
columnIndex = dt.Columns.IndexOf(column);
break;
}
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
return columnIndex;
}