Product P = new Product();
this.dataGridView1.DataSource = P.ShowProductInfo()
楼主您直接这样绑定,系统会按字段名的字母先后顺序绑定到各列.
您只要在界面上,定义每一列及绑定即可.
this.dataGridView1.DataSource = P.ShowProductInfo()
楼主您直接这样绑定,系统会按字段名的字母先后顺序绑定到各列.
您只要在界面上,定义每一列及绑定即可.
解决方案 »
- C++/CLI 套接字
- 怎么让这段代码所生成的控件一行显示三个后换行
- 上传图片插入记录的问题
- 08年的最后一个问题!checkbox问题,在线等
- 如何当按下ctrl+c时,把listbox中选择的数据复制下来
- 两个类相同结构如何进行赋值(=)
- 有关关键字static的几个菜鸟问题,谢谢大侠们!!!在线等!!!
- 请问怎样去锁定窗体form的大小,使在运行时不能随意拖动窗的大小
- VS2008下,在控件-属性-某项上按F1,总打开“属性”窗口,有什么办法可以直接看到指定项的帮助?
- XmlTextReader中保存的XML文档如何保存到一个xml文件中?谢谢
- 关于oleCommand
- 想做类似于MSN Messenger的网络即时通信程序,用C#,在 Socket流 和 Remoting 之间应该如何选择?
数据全部显示出来了。。当然列的顺序也对。刚好和 我数据库中列的 顺序相对应。。但是取值的时候,比如说在 datagridview 中
this.datagridview.currentrow.cell[0].value . 他可能得到的 不是 第一列的值。。而 他取值的 顺序 ,可能 刚好 和自动生成列的 顺序相同。。this.datagridview.currentrow.cell[0].value 界面上明明是 第一列。。可能取出来就是 第三列
原创: 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的显示方式。和方法一相比少了数据得制,性能也得以提