日期:2014-05-19  浏览次数:20765 次

求VS 2005的Windows应用程序中 可以支持绑定DataReader的控件列表
求VS   2005的Windows应用程序中   可以支持绑定DataReader的控件列表

------解决方案--------------------
DataGridView ?
无法直接绑定 DataReader, 需要通过 BindingSource 作为中介

string connStr = "server=.;database=Northwind;uid=sa ";
string sql = "SELECT * FROM Products ";
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
using (conn) {
conn.Open();
// requries BindingSource as a bridge to bind DataReader to DataGridView
BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = cmd.ExecuteReader();
dataGridView1.DataSource = bindingSource;
}


事实上, net 中对
DataGridView.DataSource 可接受的数据源作出明确规定,需要实现
IList 接口,包括一维数组。
IListSource 接口,例如,DataTable 和 DataSet 类。
IBindingList 接口,例如,BindingList 类。
IBindingListView 接口,例如,BindingSource 类。
中的任意一个,

而 DataReader 没有实现上述任意接口(实现 IEnumerable 接口)