2011-07-05 20 views
1

我有一個了MySqlDataReader對象,此查詢的結果是:我可以重置並通過MySqlDataReader再次循環?

SELECT warehouse, leasing, transportation, maintenance, manpower FROM retail WHERE zone = 'Central' GROUP BY warehouse

然後我遍歷DataReader的一次,

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

,現在我想通過它來循環一次。 .. !!

我知道DataReader只是一個'只進'的對象..但是在這裏還有其他解決方案嗎?

我在問,有沒有任何有效的方法來保存除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

我hv更新了我的答案,請檢查。 – Saurabh

+1

謝謝了:) –