2011-07-05 6 views
1

私はこのクエリの結果と、MySqlDataReaderオブジェクトを持っている:一度MySqlDataReaderをリセットして再度ループすることはできますか?

DataReaderを通じ

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

そして私ループ、

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

そして今、私は再びそれをループにしたいです。 .. !!

私は、DataReaderが「前方のみ」のオブジェクトであることを知っています。しかし、私には他の解決策がありますか?

私は、MySqlDataReader以外のデータを保持する効率的な方法はありますか?

+0

を解析

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 } 

//をもう一度、接続を開いた後、リーダーを呼び出すことができますか? – Saurabh

+0

@Saurabh:接続をもう一度開きますか?それから私は再度SELECTクエリを実行する必要があります。私は、MySqlDataReader以外のデータを保持する任意の効率的な方法はありますか? –

答えて

2

あなたは以下を使用することができます:DataTableの

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

ありがとうございました:) –

関連する問題