datatableのセル値にアクセスする


84

たとえば、4列目の最初のセルの値にアクセスする方法を教えてもらえますか?

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

たとえば、データテーブルである場合、値dにアクセスする方法は?

ありがとう。

回答:


133

セル値への弱参照が必要な場合:

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

または

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

それをすべき

強く型付けされた参照(この場合は文字列)が必要な場合は、DataRowExtensions.Field拡張メソッドを使用できます。

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

(この場合、System.Dataが名前空間にリストされていることを確認してください)

インデックスは0ベースなので、最初に最初の行(0)にアクセスし、次にこの行の4番目の列(3)にアクセスします。


4
@OPこのような値をハードコーディングするときは、最初にチェックして、実際に十分な行/列があることを確認する必要があることを覚えておいてください。
Servy 2012年

1
stackoverflow.com/a/13816531/638977も参照してくださいそれが示唆しているint number = dt.Rows[i].Field<int>(j);
Behzad Ebrahimi 2016


13

試すこともできます(4列目の最初のセル):

dt.Rows[0][3]


7

データdは、値dの行0と列3にあります。

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;
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.