나는이 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] 삭제
몇 마디 만하겠습니다