悬赏园豆:100
[已解决问题]
解决于 2008-06-06 08:22
<P>各位老大,小弟原来用面向过程的方法编程,具体方法</P>
<P>方法1.</P>
<P>private void GetItem(string id)</P>
<P>{</P>
<P>DataSet ds = DataAccess. GetDataSet("sql语句");</P>
<P>this.datagrid1.dataSource = ds;</P>
<P>this.datagrid1.dataBind();</P>
<P>}</P>
<P>现在想换成如下:方法2</P>
<P> public IList<Account> GetAccounts() {</P>
<P> IList<Account> account = new List<Account>();</P>
<P> using (SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.ConnectionString, CommandType.Text, SQL_SELECT_ACCOUNTS, null)) {<BR> <FONT color=#ff0000> while (reader.Read()) {<BR> Account myAcount = new Account(reader.GetString(0), reader.GetString(1), reader.GetString(2), reader.GetString(3), reader.GetString(4), null, null, null, reader.GetString(8), reader.GetString(9));<BR> account.Add(myAcount);<BR> }<BR></FONT> }<BR> return account;<BR> }</P>
<P>this.datagrid.datasource = GetAccounts();</P>
<P>this.datagrid.dataBind();</P>
<P>现在我想问的是:第2种方法中的红色部分会对read中的每行数据产生一个新的对象实体,最终返回对象集合,这样下来,效率上会不会有很大的降低?</P>
<P>另外,从程序运行效率方面考虑,运用那种方法比较好,谢谢!</P>