日期:2014-05-20  浏览次数:20858 次

access的表里有三条记录,但是datagridview里只显示了一条记录
access_comm.Connection   =   access_conn;
                                access_comm.CommandText   =   "select   *   from   "+str_tablename+ " ";
                                search_da.SelectCommand   =   access_comm;
                                search_da.Fill(jzh_ds,str_tablename);
                                MessageBox.Show(jzh_ds.Tables[str_tablename].Rows.Count.ToString());
                                jzh_dgw.DataMember   =   str_tablename;
datagridview里只显示了一条记录,但实际上表里有三条记录,哪位知道是为什么?

------解决方案--------------------
try..

search_da.Fill(jzh_ds,str_tablename);
jzh_dgw.DataSource=jzh_ds.Tables[str_tablename];

------解决方案--------------------
lz:原因在于:DataSource与DataMember之间的区别:

DataGridView.DataSource :DataGridView 所显示数据的数据源,包含 DataGridView 要显示的数据的对象。
DataGridView.DataMember :数据源中 DataGridView 显示其数据的列表或表的名称,指DataSource 中 DataGridView 显示其数据的表或列表的名称。默认为 Empty。

注意:
在绑定到包含多个列表或表的数据源时,此属性非常有用。在绑定到包含单个列表或表的数据源时,无需设置此属性。例如,无需设置此属性,即可将 DataGridView 控件绑定到包含单个表的 DataSet。但是,如果 DataSet 包含多个表,则必须将此属性设置为其中某个表的名称。


来源MSDN.....