基于Caption属性从数据集中获取数据

本文关键字:数据 数据集 获取 集中 Caption 属性 基于 | 更新日期: 2023-09-27 18:20:58

我正在使用WCF服务来获取另一个数据库的数据。有一个Web方法GetAnalyst可以重新运行数据集。

 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。。。。

如何根据标题检索属性。

感谢

基于Caption属性从数据集中获取数据

您可以只使用row["columnname"].ToString()根据实际列名而不是列索引来检索数据。

我刚刚写了一个方法来获得基于标题值的索引

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;
        }