代码改变世界

代码制表

2010-08-11 18:35  三皮开发时  阅读(151)  评论(0编辑  收藏  举报
代码
        /// <summary>
        
/// 取出设备属性表后,重复显示出了属性表,这里是筛选掉重复的属性表值,将属性表,和相对应的属性表中文名(2.也是某字段的值)真显示出来(1.这里说的属性表是这张表的某个字段的值)
        
/// </summary>
        
/// <param name="table">通过g3e_fno获取所有属性表信息的表</param>
        
/// <param name="cName">展示时的列名</param>
        
/// <returns></returns>
        public static DataTable DistincTableColumn(DataTable table)
        {
            ArrayList myList 
= new ArrayList();//保存 “属性表名”列值
            ArrayList myListDes = new ArrayList();//保存 "属性表中文名" 列值

            
foreach (DataRow row in table.Rows)
            {
                
string columnName = row["TABLEID"].ToString();
                
if (!myList.Contains(columnName))//如果myList没有重复项
                {
                    myList.Add(columnName);
                    myListDes.Add(row[
"TYPENAME"]);
                }
            }

            
return ToDataTable(myList,myListDes);
        }

        
/// <summary>
        
/// 将ArrayList转换DataTable
        
/// </summary>
        
/// <param name="list">第一列值</param>
        
/// <param name="listDec">第二列值</param>
        
/// <returns></returns>
        public static DataTable ToDataTable(ArrayList list,ArrayList listDec)
        {
            DataTable table 
= new DataTable();

            
//声明两列
            DataColumn columnName=new DataColumn ("属性表名",typeof(string));
            DataColumn columnNameDec 
= new DataColumn("属性表中文名"typeof(string));

            table.Columns.Add(columnName);
//将"属性表名"列加入表中
            table.Columns.Add(columnNameDec);//同上

            
for (int i = 0; i < list.Count; i++)//循环赋值
            {
                DataRow row 
= table.NewRow();
                row[
"属性表名"= list[i].ToString();
                row[
"属性表中文名"= listDec[i].ToString();
                table.Rows.Add(row);                
            }

            
return table;
        }