2016-11-08 4 views
0

데이터베이스에서 특정 기준에 대한 데이터를 검색하는 프로그램에서 DataSet을 반환하는 메서드를 만들었습니다. 해당 DataSet에있는 모든 행을 읽으 려합니다. 이 컨텍스트에서는 ExecuteReader를 사용할 수 없습니다. A foreach 루프가 올바른 접근법이지만 구문을 이해할 수는 없습니다.
GetDataSet("SearchNumberSP", dictionary); 반환 DataSet d1; 데이터 세트에는 2 개의 열만 있습니다. 이 점을 이해하도록 도와주세요!DataSet에서 모든 데이터 추출하기

+0

: 당신이 데이터 집합을 (전체 데이터베이스를 나타내는) 반환에 주장하는 경우

, 그 구문을 분석하는 코드는 다음과 같이 보일 것이다? –

+0

시도해 볼 수 있습니다. DataRow dr = ds.Tables [0] .Rows [0]; foreach (dr in ds) { GetDataSet ("SearchNumberSP", 사전); } –

+0

나를 위해 작동하지 않습니다. 나는 어디에 사용하고 어떻게 필요로하는지 보여주는 질문을 편집 할 것이다. 고마워요 @ GuinnessIsLife –

답변

2

데이터 집합은 0과 (이론적으로) 무한 데이터 테이블을 가지며 0과 (이론적으로) 무한 데이터rows/DataColumns 사이에 있습니다.

DataSet에는 DataColumns라는 속성이 없으므로 DataSet에는 2 개의 열만 있다고하는 것은 이치에 맞지 않습니다. 따라서 하나의 테이블 만 찾고있는 경우 데이터 집합을 반환하는 것은 의미가 없으므로 DataTable을 반환해야합니다. 어떤 코드는 지금까지 시도

foreach (DataTable table in _dataset) 
{ 
    foreach (DataRow dataRow in table.Rows) 
    { 
     foreach(DataColumn dataColumn in table.Columns) 
     { 
       Console.Writeline([dataColumn].ToString()); 
     } 
    } 
} 
+0

제 잘못입니다. 데이터 세트에는 테이블이 하나만 있고이 테이블에는 2 열만 있습니다. @Fang –

+0

@ananthreddy : 나는 그것을 알고 있습니다. 제 요점은 어쨌든 하나의 테이블로만 작업한다면 데이터 집합을 사용할 필요가 없다는 것입니다. – Fang