如何从数据列获取数据

chr*_*ark 3 .net c# asp.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++;
}
Run Code Online (Sandbox Code Playgroud)

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

Ste*_*eve 6

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

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

当然,您可以使用索引器简单地在行的列上循环

DataRow row = dt.Rows[0];
for(int i = 0; i < dt.Columns.Count; i++)
{
     string hutt = row[i].ToString();
Run Code Online (Sandbox Code Playgroud)

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

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