关于多个Repeat控件与数据源绑定问题 【100分】
我用个cmd创建2个SqlDataReader,绑定2个repeat控件。结果提示错误。   
 分别用2个conn和2个cmd,再2个单独的reader可以绑定。但觉得效率很低。   
 请问如何在页面中,只使用1个conn和1个cmd就可以绑定。   
 或者说如何能效率最大化。
------解决方案--------------------SqlConnection dbConn = new SqlConnection(); 
 SqlCommand dbCmd = dbConn.CreateCommand(); 
 System.Data.SqlClient.SqlDataReader reader ;   
 dbCmd.CommandText =  "select * from abc "; 
 .. 
 reader  = dbCmd.ExecuteReader(); 
 .... 
 dbCmd.CommandText =  "select * from bcd "; 
 .. 
 reader  = dbCmd.ExecuteReader(); 
 .... 
------解决方案--------------------使用DataTable保存数据,然后绑定。   
 不过,这是因为你是那种手工的绑定的原因。如果你使用sqlDataSource数据源控件,那么当然自己使用DataTable作为数据源不但不高效,写很多代码(假设你的代码没有问题的话)。   
 退一步说,你的做法效率低多少,你有具体的测试或者测试方法吗?帖出测试代码。
------解决方案--------------------一个conn只能同时使用一个datareader
用DataTable吧。
------解决方案--------------------SqlDbCommand dbcom=new SqlDbCommand ( "SQL语句 ; "+ "SQL语句 ",dbconn); 
  SqlDataReader dr=dbcom.ExecuteReader();     
 this.Repater1.DataSoucre=dr; 
 dr.NextResult();   
 this.Repater2.DataSoucre=dr;     
 dr.Close(); 
 dbconn.Close(); 
 }
------解决方案--------------------   你项目下所有的数据库操作类做一个基类嘛,每次都要创建conn和cmd多麻烦?   
 如:   
 public class Dbase 
     { 
         string _connectionString; 
         public Dbase(string connectionString) 
         { 
             _connectionString = connectionString; 
         } 
   public void Execute(string str) 
         { 
             SqlConnection conn = new SqlConnection(_connectionString); 
             SqlCommand cmd = new SqlCommand(str, conn); 
             try 
             { 
                 conn.Open(); 
                 cmd.ExecuteNonQuery(); 
             } 
             catch (SqlException e) 
             { 
                 throw new Exception(e.Message); 
             } 
             finally 
             { 
                 cmd.Dispose(); 
                 conn.Close(); 
             } 
         } 
         public DataTable GetDataTable(string str) 
         { 
             SqlConnection conn = new SqlConnection(_connectionString); 
             DataSet ds = new DataSet(); 
             SqlDataAdapter da = new SqlDataAdapter(str, conn); 
             try 
             { 
                 conn.Open(); 
                 da.Fill(ds); 
                 return ds.Tables[0]; 
             } 
             catch (SqlException e) 
             { 
                 throw new Exception(e.Message); 
             } 
             finally 
             { 
                 da.Dispose(); 
                 conn.Close(); 
             } 
         }   
     } 
 在这里定义: 
 public class SqlDataProvider 
     { 
         protected static Dbase _dbUtility = new Dbase( "Data Source=localhost;Initial Catalog=test;User ID=sa;password=sa "); 
         public static Dbase DbUtility 
         { 
             get { return _dbUtility; } 
         } 
     }   
 在其他地方就可以集中使用了..   
 如SqlDataProvider.DbUtility.GetDataTable( "select * from table1 ");