如何取出DataTable中某几个字段(列名)组合新表

在偶不知道第二种方法之前.偶费了好大劲才把这个问题解决.下面把这两个方法都帖出来,请大家批评指正.或有更好的办法也帖出来,一起交流

第一种方法:
            string sql = "Report_proc";
            SqlParameter[] paras ={ new SqlParameter("@deptno", "") };
            DataTable dt = Utils.SQLHelper.ExecuteProForDataTable(sql, paras);
            DataTable dtc = new DataTable(); //新new的一个表,用来存放我们想要的字段(列)

            for (int i = 0; i < dt.Columns.Count; i++)
            {
                if (dt.Columns.ColumnName.IndexOf("renshu") == 0)
                {
                    DataColumn dc = new DataColumn(dt.Columns.ColumnName, typeof(string));
                    dtc.Columns.Add(dc);
                }
            }
            for (int j = 0; j < dt.Rows.Count; j++)
            {
                DataRow row = dtc.NewRow();
                int m = 0;
                for (int l = 0; l < dt.Columns.Count; l++)
                {

                    if (dt.Columns[l].ColumnName.IndexOf("renshu") == 0) //我要指取的字段都有一个特征里面都含有renshu这个串
                    {
                        if (m < 5) //限制下限,以免超出列的总数,防止出现异常
                        {
                            row[m] = (dt.Rows[j][l].ToString() == "" ? 0 : Convert.ToInt32(dt.Rows[j][l].ToString()));
                            m = m + 1;
                        }
                    }

                }
                dtc.Rows.Add(row);//增加一行

          }

第二种方法:

DataTable newTable = MyDataTable.DefaultView.ToTable(false, new string[] { "ColumnName1", "ColumnName1", "ColumnName1" });

这里我们使用的ToTable方法,相比第一种方法而言,好处大家一看就知道了

参考链接:

http://msdn.microsoft.com/zh-cn/library/73kk32zz(v=VS.80).aspx

 

 

原文地址:https://www.cnblogs.com/RealAlex/p/2735254.html