在偶不知道第二种方法之前.偶费了好大劲才把这个问题解决.下面把这两个方法都帖出来,请大家批评指正.或有更好的办法也帖出来,一起交流
第一种方法:
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方法,相比第一种方法而言,好处大家一看就知道了