建议 你使用ArrayList 帮定
 例如 IList list = new ArrayList();
        list.Add("对象");

解决方案 »

  1.   

    自己指定列的话应该不会有问题吧。cell[0]应该是按你绑定列的第一个列。
      

  2.   

    --------本来 我开始是 指定列的。
     数据全部显示出来了。。当然列的顺序也对。刚好和 我数据库中列的 顺序相对应。。但是取值的时候,比如说在 datagridview 中
    this.datagridview.currentrow.cell[0].value . 他可能得到的 不是 第一列的值。。然后 我让他 自动生成列。。发现 列的顺序 也没有规则我设置 断点 调试 :
    this.dataGridView1.DataSource = P.ShowProductInfo()运行到 这个地方的时候。。程序 跳转到了 类中
      public int Pid
            {
                get { return this._Pid; }
                set { this._Pid = value; }
            }
            public string Pname
            {
                get { return this._Pname; }
                set { this._Pname = value; }
            }
            public DateTime Pdate
            {
                get { return this._Pdate; }
                set { this._Pdate = value; }
            }执行了  public DateTime Pdate  真是 奇怪啊。举了 好几个例子 都是这样的。
      

  3.   

    ...DataSource = category.GetCategories(); //IList<CategoryInfo> 作为数据源
     ...DataBind();   
    老兄这个是怎么绑定的,我怎么也显示不了
      

  4.   

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
                <Columns>
                    <asp:BoundField DataField="userId" HeaderText="userId"  />
                    <asp:BoundField DataField="userName" HeaderText="userName" />
                </Columns>
            </asp:GridView>这里面的字段写什么?
      

  5.   

    SearchResult sSearchResult = sIMetaManger.GetGovUserListQuery(query);
                GovUser[] govUserList = (GovUser[])sSearchResult.List;
                if (govUserList != null)
                {                for (int i = 0; i < govUserList.Length; i++)
                    {
                        GovUser govUser = govUserList[i];
                        string userId = govUser.userId;
                      
                      
                    }
                }
                dataGridView1.DataSource = govUserList;老兄,你是怎么绑定的,我怎么无法显示的
      

  6.   

    怎么会 无法 显示呢 ?
        dataGridView1.DataSource = govUserList;   dataGridView1.DataBind() 你是忘了写。还是?
    =====================SearchResult sSearchResult = sIMetaManger.GetGovUserListQuery(query);
                GovUser[] govUserList = (GovUser[])sSearchResult.List;
                if (govUserList != null)
                {                for (int i = 0; i < govUserList.Length; i++)
                    {
                        GovUser govUser = govUserList[i];
                        string userId = govUser.userId;
                      
                      
                    }
                }
                dataGridView1.DataSource = govUserList;
    ===========看不懂你是怎么 写的 
      

  7.   

    Nhibernate查询数据显示在DataGridView中的解决方法 
    原创: Ankoe 前言    Nhibernate 查询数据返回集合为 Ilist 类型,由于 Ilist 实现了 Collection ,所以当 Ilist 绑定到 DataGridView 时,显示的字段并未按真实的顺序排序,造成显示的不适当。可以采用两种解决方法: 方法一:将 Ilist 转换成 DataSet 注: iList: 数据源     className: 类完全限定名     DllFile:className 所属的程序集名 如 :SysGUI.QdcLib.dll         public DataSet ConvertIListToDataSet(IListiList, stringclassName, stringDllFile)         {             Type TheType = null;             if (DllFile != "")             {                 Assembly Assembly1 = Assembly.LoadFrom(DllFile);                  TheType = Assembly1.GetType(className);             }             else             {                 TheType = Type.GetType(className);             }             string sTableName = NHibernate.Cfg.ImprovedNamingStrategy.Instance.ClassToTableName(className);             BindingFlags bindFlag = BindingFlags.Public | BindingFlags.Instance;             PropertyInfo[] pInfos = TheType.GetProperties(bindFlag);             DataSet dSet = newDataSet();             DataTable dTable = dSet.Tables.Add(sTableName);             string strColmunName ="";             foreach (PropertyInfoinfoinpInfos)             {                 strColmunName = NHibernate.Cfg.ImprovedNamingStrategy.Instance.PropertyToColumnName(info.Name);                 dTable.Columns.Add(strColmunName, info.PropertyType.GetType());             }               foreach(objectobjiniList){                 DataRow dRow = dTable.NewRow();                 foreach(PropertyInfoinfoinpInfos){                     strColmunName = NHibernate.Cfg.ImprovedNamingStrategy.Instance.PropertyToColumnName(info.Name);                     dRow[strColmunName] = info.GetValue(obj, null);                 }                 dTable.Rows.Add(dRow);             }             return dSet;         } 上面采用反射根据属性名及类型信息生成一个DataTable,然后用Ilist数据填充DataTable,这种方法有个不好的地方就是如果数据量大的时候,严重造成了程序的性能损失。   方法二:建一个表来保存所有表的字段信息,DataGridView加载Ilist数据以后再改变DataGirdView的显示方式。和方法一相比少了数据得制,性能也得以提升。