Dostęp do wartości komórki datatable


84

Czy ktoś może mi pomóc, jak uzyskać dostęp na przykład do wartości pierwszej komórki w czwartej kolumnie?

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

na przykład, jak uzyskać dostęp do wartości d, jeśli byłoby to datatable?

Dzięki.

Odpowiedzi:


133

Jeśli potrzebujesz słabego odniesienia do wartości komórki:

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

lub

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

Powinienem to zrobić

Jeśli potrzebujesz odwołania o jednoznacznie określonym typie (w Twoim przypadku ciąg znaków), możesz użyć metody rozszerzenia DataRowExtensions.Field :

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

(upewnij się, że System.Data znajduje się na liście w przestrzeniach nazw w tym przypadku)

Indeksy są oparte na 0, więc najpierw uzyskujemy dostęp do pierwszego wiersza (0), a następnie czwartej kolumny w tym wierszu (3)


4
@OP Pamiętaj tylko, że często będziesz chciał najpierw sprawdzić, czy naprawdę jest wystarczająco dużo wierszy / kolumn podczas twardego kodowania takich wartości.
Servy

1
zobacz także stackoverflow.com/a/13816531/638977 Sugeruje toint number = dt.Rows[i].Field<int>(j);
Behzad Ebrahimi


13

Możesz także spróbować (pierwsza komórka w czwartej kolumnie):

dt.Rows[0][3]


7

dane d znajdują się w wierszu 0 i kolumnie 3 dla wartości d:

DataTable table;
String d = (String)table.Rows[0][3];

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;
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.