2011-07-05 2 views
1

이 쿼리의 결과와 함께 MySqlDataReader 개체가 있습니다.MySqlDataReader를 통해 재설정하고 다시 루프 할 수 있습니까?

그리고 나서 DataReader를 한 번 반복합니다.

while (r2.Read()) 
{ 
strXml.AppendFormat("<set label = '{0}'></set>",r2["warehouse"].ToString()); 
} 

이제 루프를 반복하고 싶습니다. !! !!

나는 DataReader가 단지 'forward-only'객체라는 것을 알고 있습니다. 그러나 저에게 다른 해결책이 있습니까?

MySqlDataReader 이외의 다른 데이터를 유지하는 효율적인 방법이 있습니까?

+0

당신은 다시 연결을 연 후 판독기를 호출 할 수 있습니다? – Saurabh

+0

@Saurabh : 연결을 다시여시겠습니까? 그런 다음 SELECT 쿼리를 다시 실행해야합니다. MySqlDataReader 이외의 다른 데이터를 유지하는 효율적인 방법이 있습니까? –

답변

2

당신은 아래에 사용할 수 있습니다

using (MySqlConnection connMySql = new MySqlConnection(global.g_connString)) 
      { 
       MySqlCommand cmd = connMySql.CreateCommand(); 
       cmd.CommandText = "selece * from <table>"; 
       connMySql.Open(); 
       using (MySqlDataReader dr = cmd.ExecuteReader()) 
       { 
         DataTable dt1 = new DataTable(); 
         dt1.Load(dr); 
         // You can use this dt1 anywhere in the code 
       } 

//이 데이터 테이블 분석

DataTable dt = new DataTable(); 
    if (dt.Rows.Count > 0) 
    { 
     for (int count = 0; count < dt.Rows.Count; count++) 
     { 
      string str= dt.Rows[count]["[ColumnName]"].ToString(); 
     } 
    } 
+0

DataTable에 저를 소개해 주셔서 고맙습니다.하지만 지금은 자습서를 찾을 수 없습니다. 반복 학습하는 방법을 보여줄 것입니다. DataReader에 대해 수행했던 것처럼 DataTable을 반복하고 싶습니다. r2 [ "창고"]'... 나를 그렇게 도울 수 있니? –

+0

나는 내 대답을 업데이트했습니다. 확인해주십시오. – Saurabh

+1

고맙습니다. :) –

관련 문제