如何从datacolumn获取数据

时间:2014-04-09 12:33:19

标签: c# asp.net .net asp.net-mvc ado.net

我正在对DataTables行的所有列进行foreach。我想从特定列中获取数据,但无法弄清楚如何执行此操作。见代码。

DataTable dt = mHandler.GetRegistrtationProgress(customer);
int column = 1;
foreach (DataColumn dc in dt.Columns)
{
    string hutt = dc.ToString();
    if (column == 11)
    {
        if (hutt.Equals("1"))
        {
            addSpecificPicture();   
        }
    }
    else
    {
        if (hutt.Equals("1"))
        {
            addPicture(column);
        }
    }
    column++;
}

当我运行此代码时,我只在列上获得名称,但必须有一个好的方法来获取值?或者不是?

2 个答案:

答案 0 :(得分:4)

不清楚您要实现的目标,但如果您想为每列检索唯一一行的值,则必须使用dc.ColumnName属性

DataTable dt = mHandler.GetRegistrtationProgress(customer);
foreach (DataColumn dc in dt.Columns)
{
     string hutt = dt.Rows[0][dc.ColumnName].ToString();
     ....

当然,你可以使用索引器

简单地遍历行的列
DataRow row = dt.Rows[0];
for(int i = 0; i < dt.Columns.Count; i++)
{
     string hutt = row[i].ToString();

DataRow对象中还有属性ItemArray的选项,其中数组的每个元素都包含相应的值

DataRow row = dt.Rows[0];
for(int i = 0; i < row.ItemArray.Length; i++)
{
     string hutt = row.ItemArray[i].ToString();
     ....

答案 1 :(得分:1)

你必须首先检查行,然后是列。

foreach (DataRow dr in dt.Rows) {
    foreach(DataColumn dc in dt.Columns) {
        string hutt = dr[dc].ToString()
    }
}

或者像Steve回答的那样,如果你只有一排。

您还可以查看here