1

我是初学者。

我听说 DataReader 只能以只读方式工作,并且一次它会读取一条记录。假设当我执行以下代码时

SqlDataReader reader=cmd.ExecuteReader();
gv1.DataSource=reader;
gv.DataBind();

gridview 如何填充所有记录?。由于阅读器每次读取都能够读取一行,我认为只有最后一行可供 GridView 显示。

4

3 回答 3

0

在内部,DataReader 的 Read() 方法在 DataBinding 期间被调用,直到它返回 false(表示没有更多记录)。获取每条记录后,将其添加到要呈现的 html 中。

于 2010-01-03T09:56:18.717 回答
0

根据MSDN

GridView 控件可以绑定到数据源控件(如 SqlDataSource、ObjectDataSource 等),以及任何实现 System.Collections.IEnumerable 接口的数据源(如 System.Data.DataView、System.Collections .ArrayList 或 System.Collections.Hashtable)。使用以下方法之一将 GridView 控件绑定到适当的数据源类型:

如您所见,您只是将SqlDataReader 引用设置为 GridView.DataSource。当调用 GridView.DataBind 方法时,GridView 通过 while (reader.Read())读取它并填充相应的数据。

于 2010-01-03T10:03:31.417 回答
-1

BindData将从阅读器读取数据,一次一条记录,并在运行时填充 GridView。GridView 不通过阅读器保持与服务器的连接。

于 2010-01-03T09:55:01.160 回答