Acceder al valor de la celda de la tabla de datos

84

¿Alguien puede ayudarme a acceder, por ejemplo, al valor de la primera celda en la cuarta columna?

a b c d
1 2 3 5
g n m l

por ejemplo, ¿cómo acceder al valor d, si eso fuera datatable?

Gracias.

el ninho
fuente

Respuestas:

133

Si necesita una referencia débil al valor de la celda:

object field = d.Rows[0][3]

o

object field = d.Rows[0].ItemArray[3]

Deberías hacerlo

Si necesita una referencia fuertemente tipada (cadena en su caso), puede usar el método de extensión DataRowExtensions.Field :

string field = d.Rows[0].Field<string>(3);

(asegúrese de que System.Data esté listado en los espacios de nombres en este caso)

Los índices se basan en 0, por lo que primero accedemos a la primera fila (0) y luego a la cuarta columna de esta fila (3)

vc 74
fuente
4
@OP Solo tenga en cuenta que a menudo querrá verificar primero para asegurarse de que realmente haya suficientes filas / columnas cuando codifique valores como este.
Servicio
1
ver también stackoverflow.com/a/13816531/638977 Sugiereint number = dt.Rows[i].Field<int>(j);
Behzad Ebrahimi
70
string abc= dt.Rows[0]["column name"].ToString();
ashok luhach
fuente
13

También puede probar (primera celda en la cuarta columna):

dt.Rows[0][3]
FrenkyB
fuente
8
foreach(DataRow row in dt.Rows)
{
    string value = row[3].ToString();
}
gabsferreira
fuente
7

los datos d están en la fila 0 y la columna 3 para el valor d:

DataTable table;
String d = (String)table.Rows[0][3];
atenea
fuente
1
public V[] getV(DataTable dtCloned)
{

    V[] objV = new V[dtCloned.Rows.Count];
    MyClasses mc = new MyClasses();
    int i = 0;
    int intError = 0;
    foreach (DataRow dr in dtCloned.Rows)
    {
        try
        {
            V vs = new V();
            vs.R = int.Parse(mc.ReplaceChar(dr["r"].ToString()).Trim());
            vs.S = Int64.Parse(mc.ReplaceChar(dr["s"].ToString()).Trim());
            objV[i] = vs;
            i++;
        }
        catch (Exception ex)
        {
            //
            DataRow row = dtError.NewRow();
            row["r"] = dr["r"].ToString();
            row["s"] = dr["s"].ToString();
            dtError.Rows.Add(row);
            intError++;
        }
    }
    return vs;
}
Ata Hoseini
fuente