日期:2014-05-17  浏览次数:20845 次

DataSource必须是datatable么可以是SqlDataReader或者SqlDataAdapter读取到的结果么?
DataSource必须是datatable么可以是SqlDataReader或者SqlDataAdapter读取到的结果么?
da = new SqlDataAdapter(cmd1);
DataSet ds=new DataSet();
dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
我这样写就可以显示
da = new SqlDataAdapter(cmd1);

dataGridView1.DataSource = da;
con.Close();
这样写就显示不出来
------最佳解决方案--------------------
DataTable和List<T>可以做数据源,他们之间有共性,你可以观察观察,
SqlDataReader.Load(), 把数据加载到DataTable里一样可以使用。
------其他解决方案--------------------
引用:
引用:DataTable和List<T>可以做数据源,他们之间有共性,你可以观察观察,
SqlDataReader.Load(), 把数据加载到DataTable里一样可以使用。
多谢,那么说datareader也不能做数据源了

datareader只是以只读向前的方式遍历数据库中的记录
不能作为数据源
------其他解决方案--------------------
IList<T>也可以。
SqlDataAdapter是适配器,当然不能做数据源了。
------其他解决方案--------------------

数组,list,linq,datatable,dataset等都可以,SqlDataAdapter是 DataSet和 SQL Server之间的桥接器,用于检索和保存数据用的,当然不能做数据源了。
------其他解决方案--------------------
引用:
DataTable和List<T>可以做数据源,他们之间有共性,你可以观察观察,
SqlDataReader.Load(), 把数据加载到DataTable里一样可以使用。

多谢,那么说datareader也不能做数据源了
------其他解决方案--------------------
引用:
DataTable和List<T>可以做数据源,他们之间有共性,你可以观察观察,
SqlDataReader.Load(), 把数据加载到DataTable里一样可以使用。

是不是应该是
datata.load(SqlDataReader)才对