请教各位一个OleDbDataReader的问题!
我的函数是这样的: 
 		public   OleDbDataReader   ExecuteReader(string   strOleDb) 
 		{	 
 			using(OleDbConnection   conn   =   new   OleDbConnection(this.connectionString)) 
 			{ 
 				OleDbCommand   cmd   =   new   OleDbCommand(strOleDb,conn);				 
 				try 
 				{ 
 					conn.Open(); 
 					OleDbDataReader   myReader   =   cmd.ExecuteReader(); 
 					return   myReader; 
 				} 
 				catch(
System.Data.OleDb.OleDbException   e) 
 				{								 
 					throw   new   Exception(e.Message); 
 				} 
 			} 
 		} 
 ----------------- 
 我是这样调用的: 
 OleDbDataReader   dr   =   odb.ExecuteReader(sql1); 
 					while(dr.Read()) 
 					{ 
 						strXML.Append( " <Data>  "); 
 						for(int   i   =0;i <   Col.Length;i++) 
 						{ 
 							strXML.Append( " < "+Col[i].ToString().Trim()+ ">  "+dr.GetValue(i).ToString().Trim()+ " </ "+Col[i].ToString().Trim()+ ">  "); 
 						} 
 						strXML.Append( " <SEND_STATE> INSERT </SEND_STATE>  "); 
 						strXML.Append( " </Data>  "); 
 						Value   =   true; 
 					} 
 					dr.Close(); 
 ------------------ 
 他提示的错误消息是: 
 阅读器关闭时   Read   的尝试无效。 
 ------------------------------------------ 
 我就不知道为什么了,请各位帮我看看
------解决方案--------------------把using去掉 
 改为 
 OleDbConnection conn = new OleDbConnection(this.connectionString); 
 OleDbCommand cmd = new OleDbCommand(strOleDb,conn);				 
 try 
 { 
 	conn.Open(); 
 	OleDbDataReader myReader = cmd.ExecuteReader(); 
 	return myReader; 
 } 
 catch(System.Data.OleDb.OleDbException e) 
 {								 
 	throw new Exception(e.Message); 
 }
------解决方案--------------------同意楼上,using关键字表示不在它的范围后,连接就关闭了,Reader  自然也关闭了!
------解决方案--------------------最好是将conn做为参数传入, 再使用ExecuteReader的地方先conn.Open() 
 使用后conn.Close();