2011-06-27 66 views

Trả lời

36

cái gì đó như

for (int rows = 0; rows < dataGrid.Rows.Count; rows++) 
{ 
    for (int col= 0; col < dataGrid.Rows[rows].Cells.Count; col++) 
    { 
     string value = dataGrid.Rows[rows].Cells[col].Value.ToString(); 

    } 
} 

dụ mà không sử dụng chỉ số

foreach (DataGridViewRow row in dataGrid.Rows) 
{ 
    foreach (DataGridViewCell cell in row.Cells) 
    { 
     string value = cell.Value.ToString(); 

    } 
} 
+5

Thay vì viết kiểu của hàng hoặc ô, tức là "DataGridViewRow" hoặc "DataGridViewCell" tương ứng, bạn chỉ cần viết "var". –

+1

@kami nếu var được sử dụng, row.Cells ném một lỗi vì nó cho rằng hàng là đối tượng kiểu – Ravvy

0

Mã số Ví dụ: Đọc dữ liệu từ DataGridView và lưu trữ nó trong một mảng

int[,] n = new int[3, 19]; 
for (int i = 0; i < (StartDataView.Rows.Count - 1); i++) 
{ 
    for (int j = 0; j < StartDataView.Columns.Count; j++) 
    { 
     if(this.StartDataView.Rows[i].Cells[j].Value.ToString() != string.Empty) 
     { 
      try 
      { 
       n[i, j] = int.Parse(this.StartDataView.Rows[i].Cells[j].Value.ToString()); 
      } 
      catch (Exception Ee) 
      { //get exception of "null" 
       MessageBox.Show(Ee.ToString()); 
      } 
     } 
    } 
} 
+0

Tôi không nhận được try-catch trong ví dụ của bạn. Bạn nên kiểm tra để đảm bảo ô không rỗng trước khi phân tích cú pháp. – carlbenson

+0

@Carl Benson - Cảm ơn, tôi đã cập nhật câu trả lời của mình. – Bibhu

2
string[,] myGridData = new string[dataGridView1.Rows.Count,3]; 

int i = 0; 

foreach(DataRow row in dataGridView1.Rows) 

{ 

    myGridData[i][0] = row.Cells[0].Value.ToString(); 
    myGridData[i][1] = row.Cells[1].Value.ToString(); 
    myGridData[i][2] = row.Cells[2].Value.ToString(); 

    i++; 
} 

Hy vọng điều này sẽ giúp ...

7

Nếu muốn, bạn cũng có thể sử dụng tên cột thay vì số cột. Ví dụ, nếu bạn muốn đọc dữ liệu từ DataGridView trên hàng 4. và cột "Tên". Nó cung cấp cho tôi một sự hiểu biết tốt hơn cho biến mà tôi đang xử lý.

dataGridView.Rows[4].Cells["Name"].Value.ToString(); 

Hy vọng điều đó sẽ hữu ích.

0
private void HighLightGridRows() 
     {    
      Debugger.Launch(); 
      for (int i = 0; i < dtgvAppSettings.Rows.Count; i++) 
      { 
       String key = dtgvAppSettings.Rows[i].Cells["Key"].Value.ToString(); 
       if (key.ToLower().Contains("applicationpath") == true) 
       { 
        dtgvAppSettings.Rows[i].DefaultCellStyle.BackColor = Color.Yellow; 
       } 
      } 
     } 
Các vấn đề liên quan