2011-12-06 2 views
2

데이터베이스에서 DataGridView이 채워져 있으며 각 행을 가져 와서 개체를 만들어야합니다. 나는 그것을하는 방법을 알아낼 수 없다.DataGridView 행 루프 및 셀 데이터 액세스

DataGridView Columns: Name Price ProductId Condition MemberId Description

코드 내가 가진 :

foreach(DataGridViewRow row in members_dg.rows) 
{ 
    foreach(DataGridViewCell cell in row.Cells) 
    { 
     // need to get info. This should show u what im looking for. 
     //string name = cell1.Text; 
     //string price = cell2.Text; 
     //etc 
     //Member member = new Member(name, price, ...); 
    } 
} 

답변

2

어쩌면이?

foreach(DataGridViewRow row in members_dg.rows) 
{ 
    // need to get info. This should show u what im looking for. 
    string name = row.Cells[0].Value.ToString(); // first column 
    string price = row.Cells[1].Value.ToString(); // second column 
    //etc 
    Member member = new Member(name, price, ...); 
} 

모든 셀을 반복 할 필요가 없습니다. 현재있는 행의 셀 색인을 호출하면됩니다.

+1

매우 유용한 것으로 나타났습니다. VS에서 데이터 구조를 살펴볼 때 실제로 사용되는 구문은 적어도 분명하지 않습니다. – octopusgrabbus

0
if(cell.OwningColumn.IsDataBound) 
{ 
    Member member = new Member(); 
    //switch statement or you can use reflection 
    switch(cell.OwningColumn.DataPropertyName) 
    { 
     case "name": 
      member.Name=cell.Value;//need cast 
     .... 
    } 
}