private void RowsToColsTest()
{
//声明定义行数据表
DataTable
_rowsDt = new DataTable();
_rowsDt.Columns.Add("name");
//名称
_rowsDt.Columns.Add("type");
//类型
_rowsDt.Columns.Add("formula");
//公式
//定义行信息数据表
DataRow
_dr = _rowsDt.NewRow();
//字段数据
_dr["name"] = "ZGXM";
_dr["type"] = "jb";
_dr["formula"] = "";
//添加数据
_rowsDt.Rows.Add(_dr);
_dr =
_rowsDt.NewRow();
//字段数据
_dr["name"] = "JBGZ";
_dr["type"] = "jb";
_dr["formula"] = "";
//添加数据
_rowsDt.Rows.Add(_dr);
_dr =
_rowsDt.NewRow();
//字段数据
_dr["name"] = "XJGZ";
_dr["type"] = "jb";
_dr["formula"] = "";
//添加数据
_rowsDt.Rows.Add(_dr);
_dr =
_rowsDt.NewRow();
//字段数据
_dr["name"] = "BFZS";
_dr["type"] = "gs";
_dr["formula"] = "(JBGZ+XJGZ)*0.1";
//添加数据
_rowsDt.Rows.Add(_dr);
DisplayTable(_rowsDt);
DataTable
_colsDt = new DataTable();
//设置列
foreach
(DataRow _rows in _rowsDt.Rows)
{
_colsDt.Columns.Add(_rows["name"].ToString());
}
//设置值
for (int i
= 0; i < 4; i++)
{
string _tGuid =
Guid.NewGuid().ToString().Substring(0, 4);
DataRow _temp1Dr =
_colsDt.NewRow();
for (int y = 0; y <
_colsDt.Columns.Count; y++)
{
if (_colsDt.Columns[y].ColumnName ==
"ZGXM")
{
_temp1Dr[y] = _tGuid;
}
else
{
_temp1Dr[y] = i + 1;
}
}
_colsDt.Rows.Add(_temp1Dr);
}
DataRow
_temp2Dr = _colsDt.NewRow();
_temp2Dr["ZGXM"] = "张三";
_colsDt.Rows.Add(_temp2Dr);
Console.WriteLine("\n\n行转列后=====>\n\n");
DisplayTable(_colsDt);
Console.ReadLine();
}
public void WebMain()
{
DataTable
dt = new DataTable();
dt.Columns.Add("name");
dt.Columns.Add("type");
dt.Columns.Add("relt");
for (int i
= 0; i < 4; i++)
{
DataRow dr =
dt.NewRow();
dr["name"] = "name" +
i;
dr["type"] = "type" +
i;
dr["relt"] = "relt" +
i;
dt.Rows.Add(dr);
}
//DataRow
dr1 = dt.NewRow();
//dr1["name"] = "name5";
//dr1["type"] = "type5";
//dr1["relt"] = "relt5";
//dt.Rows.Add(dr1);
DisplayTable(dt);
Console.WriteLine("\r\n =====> 进行行列转换 \r\n");
DisplayTable(ColumnToRow(dt, 0));
Console.ReadLine();
}
public DataTable ColumnToRow(DataTable src_dt,
int columnIndex) //columnIndex 用来当作新列名的列
{
DataTable
dt = new DataTable();
dt.Columns.Add(src_dt.Columns[columnIndex].ColumnName);
foreach
(DataRow dr in src_dt.Rows)
dt.Columns.Add(dr[columnIndex].ToString());
int n =
src_dt.Columns.Count;
for (int i
= 0; i < n; i++)
{
if (i == columnIndex)
continue; //如果是被当作列名的列,则跳过
DataRow new_dr =
dt.NewRow();
string columnName =
src_dt.Columns[i].ColumnName;
new_dr[0] = columnName;
foreach (DataRow dr in
src_dt.Rows)
{
string newColumnName =
dr[columnIndex].ToString();
new_dr[newColumnName] = dr[columnName];
}
dt.Rows.Add(new_dr);
}
return
dt;
}
private void DisplayTable(DataTable _dt)
{
//表头
Console.Write("| ");
foreach
(DataColumn _dc in _dt.Columns)
{
Console.Write(_dc.ColumnName
+ " | ");
}
Console.WriteLine();
Console.WriteLine("----------------------------------------------------------------");
//表体
foreach
(DataRow _tr in _dt.Rows)
{
Console.Write("| ");
for (int i = 0; i <
_dt.Columns.Count; i++)
{
Console.Write(_tr[i] + " | ");
}
Console.WriteLine();
}
}
加载中,请稍候......