Zugriff auf den Zellenwert von datatable

81

Kann mir jemand helfen, wie ich zum Beispiel auf den Wert der ersten Zelle in der 4. Spalte zugreifen kann?

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

Wie kann man beispielsweise auf den Wert d zugreifen, wenn dieser datierbar wäre?

Vielen Dank.

el ninho
quelle

Antworten:

131

Wenn Sie einen schwachen Verweis auf den Zellenwert benötigen:

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

oder

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

Sollte es tun

Wenn Sie eine stark typisierte Referenz benötigen (in Ihrem Fall eine Zeichenfolge), können Sie die Erweiterungsmethode DataRowExtensions.Field verwenden:

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

(Stellen Sie sicher, dass System.Data in diesem Fall in den Namespaces aufgeführt ist.)

Indizes basieren auf 0, daher greifen wir zuerst auf die erste Zeile (0) und dann auf die vierte Spalte in dieser Zeile (3) zu.

vc 74
quelle
4
@OP Denken Sie daran, dass Sie häufig zuerst überprüfen möchten, um sicherzustellen, dass bei solchen harten Codierungswerten wirklich genügend Zeilen / Spalten vorhanden sind.
Servy
1
siehe auch stackoverflow.com/a/13816531/638977 Es schlägt vorint number = dt.Rows[i].Field<int>(j);
Behzad Ebrahimi
69
string abc= dt.Rows[0]["column name"].ToString();
ashok luhach
quelle
13

Sie können auch versuchen (erste Zelle in der 4. Spalte):

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

Daten d befinden sich in Zeile 0 und Spalte 3 für den Wert d:

DataTable table;
String d = (String)table.Rows[0][3];
Athena
quelle
0
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
quelle