2012-01-26 18 views

Trả lời

96

Nếu bạn cần một tham chiếu yếu đến giá trị của ô:

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

hoặc

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

nên làm điều đó

Nếu bạn cần một tài liệu tham khảo mạnh mẽ gõ (string trong trường hợp của bạn) bạn có thể sử dụng phương thức mở rộng DataRowExtensions.Field:

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

(chắc chắn System.Data là trong liệt kê trong không gian tên trong trường hợp này)

Chỉ số được 0 dựa vì vậy chúng tôi lần đầu tiên truy cập hàng đầu tiên (0) và sau đó là cột thứ 4 trong dòng này (3)

+4

@OP Chỉ cần ghi nhớ rằng bạn sẽ thường muốn kiểm tra đầu tiên để đảm bảo rằng có thực sự là đủ hàng/cột khi cứng mã hóa các giá trị như thế này. – Servy

+0

Rất hữu ích, cảm ơn bạn! – MonkeyDoug

+0

xem thêm http://stackoverflow.com/a/13816531/638977 Nó gợi ý 'int number = dt.Rows [i] .Field (j);' –

7
foreach(DataRow row in dt.Rows) 
{ 
    string value = row[3].ToString(); 
} 
54
string abc= dt.Rows[0]["column name"].ToString(); 
+0

Cảm ơn bạn rất nhiều! – user3573738

9

Bạn cũng có thể thử (ô đầu tiên trong cột thứ 4):

dt.Rows[0][3] 
5

dữ liệu d là trong hàng 0 và cột 3 cho giá trị d:

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