从数据集单元获取值

时间:2014-05-08 13:46:59

标签: c# dataset

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

我必须通过name列搜索数据集,其名称为" 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];
                        }
                    }
                }
            }
        }

2 个答案:

答案 0 :(得分:0)

使用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
              }
        }
    }
}

答案 1 :(得分:0)

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