C# 从数据集单元格获取值

C# 从数据集单元格获取值,c#,dataset,C#,Dataset,我试图获取数据集中特定单元格的值。我的数据集至少有两个表(可能更多)。其中一个表有两列-Name$和Value$ 我必须按名称列搜索数据集,其中名称为“FirstName”,并保存与该特定名称对应的值 以下是我到目前为止的情况: string val = null; foreach (DataTable dt in ds.Tables) { foreach (DataRow dr in dt.Rows) { foreach (DataColumn dc in dt

我试图获取数据集中特定单元格的值。我的数据集至少有两个表(可能更多)。其中一个表有两列-Name$和Value$

我必须按名称列搜索数据集,其中名称为“FirstName”,并保存与该特定名称对应的值

以下是我到目前为止的情况:

string val = null;
foreach (DataTable dt in ds.Tables)
{
    foreach (DataRow dr in dt.Rows)
    {
        foreach (DataColumn dc in dt.Columns)
        {
            object item = dr[dc];

            if (item.ToString().Equals("Name$"))
            {
                // store the value for that name
            }
        }
    }
}
请记住数据集中可能有许多表,了解这是如何发生的

编辑:以下是完整的解决方案:

foreach (DataTable dt in ds.Tables)
        {
            foreach (DataRow row in dt.Rows)
            {
                foreach (DataColumn dc in dt.Columns)
                {
                    if (dc.ColumnName.ToString().Equals("Name$"))
                    {
                        if (row["Name$"].ToString().Equals("FirstName"))
                        {
                            firstName = (string)row[row.Table.Columns["Name$"].Ordinal + 1];
                        }

                        if (row["Name$"].ToString().Equals("LastName$"))
                        {
                            lastName = (string)row[row.Table.Columns["Name$"].Ordinal + 1];
                        }
                    }
                }
            }
        }

使用ColumnName属性

string val = null;
foreach (DataTable dt in ds.Tables)
{
    foreach (DataRow dr in dt.Rows)
    {
        foreach (DataColumn dc in dt.Columns)
        {
            if(dc.ColumnName=="Name")
              {
                    //save
              }
        }
    }
}

for(int i=0;i
谢谢!我已经接受了你们的答案,我正在用完整的解决方案编辑我的帖子,以防其他人需要它。
foreach (DataRow dr in ds.Tables[0].Rows) //Tables[1]....
{
    if(dr["ColumName"].ToString()==....)
        // store the value for that name
}
for (int i = 0; i < ds.Tables.Count; i++)
{
    foreach (DataRow dr in ds.Tables[i].Rows)
    { 
        //dr....
    }
}