DataTable에서 rowData에만 액세스

라라

나는이 DataTable열 이름과 행이 포함되어있다. 이제 내 요구 사항에 따라 지금 한 것처럼 열 이름을 제공하지 않고 행 값만 가져와야합니다. 여기에 코드가 있습니다.

data = employees.AsEnumerable().Select(row=> new List<string>
{
   row.Field<string>("EmployeeName"),
   row.Field<string>("Company")
})

위의 코드 employees에서 DataTable. 수행 방법 data코드에 표시된대로 행 값을 변수로 가져와야 합니다.

최신 정보

data = employees.AsEnumerable().Select(row=> new List<string>
{
 foreach(DataRow row in employees.Rows)
    {
        foreach(DataColumn col in employees.Columns)
         data.Add(row[col.Ordinal].ToString());
     }
})
스티브

이 구문을 사용하면됩니다.

data = employees.AsEnumerable().Select(row=> new List<string>
{ 
   row[0].ToString(),
   row[1].ToString()

});

여기서 0은 EmployeeName 열의 인덱스이고 1은 Company 열의 인덱스입니다 (쿼리가 다음과 같은 경우 SELECT EmployeeName, Company from ....).

그러나 제 생각에는 이것은 실제로 한 걸음 뒤로 물러서는 것입니다. 열 이름을 사용하면 데이터베이스 테이블에서 열이로드되는 순서대로 코드가 유지됩니다.

편집 모든 행과 모든 열의 모든 행에 대해 반복하려면이 코드를 사용할 수 있습니다 (이 시점에서 IEnumerable 확장을 사용하는 것은 의미가 없습니다)

foreach :

foreach(DataRow row in employees.Rows)
   foreach(DataColumn col in employees.Columns)
       data.Add(row[col.ColumnName].ToString());
   // or 
   // data.Add(row[col.Ordinal].ToString());

표준 루프 포함

for(int r = 0; r < employees.Rows.Count; r++)
   for(int c = 0; c < employees.Columns.Count; c++)
       data.Add(employees.Rows[r][c].ToString());

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사