C# 在.net 1.1中将列添加到数据集中
我的数据集(数据集名称dsEmp)有25列,在这里我需要添加一个新列,列名为C# 在.net 1.1中将列添加到数据集中,c#,C#,我的数据集(数据集名称dsEmp)有25列,在这里我需要添加一个新列,列名为EndDate,数据类型为string 我需要将数据类型为datetime的第18列中的所有数据导入新创建的数据列EndDate。一旦我们将第18列中的所有数据导入到新列EndDate,我们应该删除第18列。这就是您要查找的内容: DataSet ds = new DataSet(); DataTable dtt = new DataTable(); ds.Tables.
EndDate
,数据类型为string
我需要将数据类型为
datetime
的第18列中的所有数据导入新创建的数据列EndDate
。一旦我们将第18列中的所有数据导入到新列EndDate
,我们应该删除第18列。这就是您要查找的内容:
DataSet ds = new DataSet();
DataTable dtt = new DataTable();
ds.Tables.Add(dtt);
// simulate required columns
dtt.Columns.Add("col1", typeof(int));
dtt.Columns.Add("col2", typeof(string));
//...
dtt.Columns.Add("col18", typeof(DateTime));
// pupulate with dummy date
for (int index = 0; index < 100; index++)
{
dtt.Rows.Add(index, "val" + index.ToString(), DateTime.Now.AddMinutes(index));
}
// add new column
DataColumn colEndDate = new DataColumn("EndDate", typeof(DateTime));
dtt.Columns.Add(colEndDate);
// get old column reference
DataColumn colOld18 = dtt.Columns["col18"];
// loop thru all rows
foreach (DataRow row in dtt.Rows)
{
// store value from old column to new column
row[colEndDate] = Convert.ToDateTime(row[colOld18]).ToShortDateString();
// or
row[colEndDate] = Convert.ToDateTime(row[colOld18]).ToString("MM/dd/yyyy hh:mm:ss");
}
// remove old column
dtt.Columns.Remove(colOld18);
dtt.AcceptChanges();
DataSet ds=新数据集();
DataTable dtt=新的DataTable();
ds.Tables.Add(dtt);
//模拟所需的列
添加(“col1”,typeof(int));
添加(“col2”,typeof(string));
//...
添加(“col18”,typeof(DateTime));
//假日期化蛹
对于(int-index=0;index<100;index++)
{
Add(索引,“val”+index.ToString(),DateTime.Now.AddMinutes(索引));
}
//添加新列
DataColumn colEndDate=新的DataColumn(“EndDate”,typeof(DateTime));
dtt.Columns.Add(colEndDate);
//获取旧列引用
DataColumn colOld18=dtt.Columns[“col18”];
//循环通过所有行
foreach(dtt.Rows中的数据行)
{
//将值从旧列存储到新列
行[colEndDate]=Convert.ToDateTime(行[colOld18]).ToSortDateString();
//或
行[colEndDate]=Convert.ToDateTime(行[colOld18]).ToString(“MM/dd/yyyy hh:MM:ss”);
}
//删除旧列
dtt.Columns.Remove(colOld18);
dtt.AcceptChanges();
这就是您要寻找的:
DataSet ds = new DataSet();
DataTable dtt = new DataTable();
ds.Tables.Add(dtt);
// simulate required columns
dtt.Columns.Add("col1", typeof(int));
dtt.Columns.Add("col2", typeof(string));
//...
dtt.Columns.Add("col18", typeof(DateTime));
// pupulate with dummy date
for (int index = 0; index < 100; index++)
{
dtt.Rows.Add(index, "val" + index.ToString(), DateTime.Now.AddMinutes(index));
}
// add new column
DataColumn colEndDate = new DataColumn("EndDate", typeof(DateTime));
dtt.Columns.Add(colEndDate);
// get old column reference
DataColumn colOld18 = dtt.Columns["col18"];
// loop thru all rows
foreach (DataRow row in dtt.Rows)
{
// store value from old column to new column
row[colEndDate] = Convert.ToDateTime(row[colOld18]).ToShortDateString();
// or
row[colEndDate] = Convert.ToDateTime(row[colOld18]).ToString("MM/dd/yyyy hh:mm:ss");
}
// remove old column
dtt.Columns.Remove(colOld18);
dtt.AcceptChanges();
DataSet ds=新数据集();
DataTable dtt=新的DataTable();
ds.Tables.Add(dtt);
//模拟所需的列
添加(“col1”,typeof(int));
添加(“col2”,typeof(string));
//...
添加(“col18”,typeof(DateTime));
//假日期化蛹
对于(int-index=0;index<100;index++)
{
Add(索引,“val”+index.ToString(),DateTime.Now.AddMinutes(索引));
}
//添加新列
DataColumn colEndDate=新的DataColumn(“EndDate”,typeof(DateTime));
dtt.Columns.Add(colEndDate);
//获取旧列引用
DataColumn colOld18=dtt.Columns[“col18”];
//循环通过所有行
foreach(dtt.Rows中的数据行)
{
//将值从旧列存储到新列
行[colEndDate]=Convert.ToDateTime(行[colOld18]).ToSortDateString();
//或
行[colEndDate]=Convert.ToDateTime(行[colOld18]).ToString(“MM/dd/yyyy hh:MM:ss”);
}
//删除旧列
dtt.Columns.Remove(colOld18);
dtt.AcceptChanges();
@Prince我为你准备了一个小班,让你可以用它做你想做的事情。希望它能符合你的要求。昨天才想发布这个答案,但我的工作很忙
class TestAddRemoveCol
{
///
/// Adds the passed column to a datatable at a particular location
///
///
///
///
///
public DataTable AddCol(DataSet ds, string colName, Type type, int location)
{
DataTable dt = new DataTable();
int colIndex = 0;
DataColumn dc2 = null;
foreach (DataColumn item in ds.Tables[0].Columns)
{
if (colIndex == location)
{
dc2 = new DataColumn();
dc2.ColumnName = colName;
dc2.DataType = type;
dt.Columns.Add(dc2);
}
dc2 = new DataColumn();
dc2.ColumnName = item.ColumnName;
dc2.DataType = item.DataType;
dt.Columns.Add(dc2);
colIndex++;
}
foreach (DataRow dr in ds.Tables[0].Rows)
{
dt.ImportRow(dr);
}
return dt;
}
///
/// returns a datacolumn with type string
///
///
///
///
public DataTable CopyCol(DataTable dt, string oldColName, string newColName)
{
DataTable dt2 = dt.Copy();
for (int i = 0; i
/// Removes column from a particular location
///
///
///
public void RemoveCol(DataTable dt, string colName)
{
//Remove column with a particular name
dt.Columns.Remove(colName);
//OR
//Remove column at a particular index
//ds.Tables[0].Columns.RemoveAt(index);
}
}
类TestAddressemoveCol
{
///
///将传递的列添加到数据表的特定位置
///
///
///
///
///
公共数据表AddCol(数据集ds、字符串colName、类型类型、int位置)
{
DataTable dt=新的DataTable();
int-colIndex=0;
DataColumn dc2=null;
foreach(ds.Tables[0].Columns中的DataColumn项)
{
如果(colIndex==位置)
{
dc2=新数据列();
dc2.ColumnName=colName;
dc2.DataType=type;
dt.Columns.Add(dc2);
}
dc2=新数据列();
dc2.ColumnName=item.ColumnName;
dc2.DataType=item.DataType;
dt.Columns.Add(dc2);
colIndex++;
}
foreach(ds.Tables[0].行中的数据行dr)
{
进口税(dr);
}
返回dt;
}
///
///返回类型为string的datacolumn
///
///
///
///
公共数据表CopyCol(数据表dt、字符串oldColName、字符串newColName)
{
DataTable dt2=dt.Copy();
对于(int i=0;i
///从特定位置删除列
///
///
///
public void RemoveCol(数据表dt,字符串colName)
{
//删除具有特定名称的列
dt.Columns.Remove(colName);
//或
//删除特定索引处的列
//表[0].Columns.RemoveAt(索引);
}
}
您可以按如下方式使用该类
//Test Add/Remove Col
//Create dummy dataset for testing
DataSet ds = new DataSet();
DataTable dt = new DataTable();
DataColumn dc = new DataColumn("col1", typeof(DateTime));
dt.Columns.Add(dc);
dc = new DataColumn("col2", typeof(DateTime));
dt.Columns.Add(dc);
dc = new DataColumn("col3", typeof(DateTime));
dt.Columns.Add(dc);
dc = new DataColumn("col4", typeof(DateTime));
dt.Columns.Add(dc);
DataRow dr = dt.NewRow();
dr[0] = Convert.ToDateTime("01/01/2011");
dr[1] = Convert.ToDateTime("02/01/2011");
dr[2] = Convert.ToDateTime("03/01/2011");
dr[3] = Convert.ToDateTime("04/01/2011");
dt.Rows.Add(dr);
ds.Tables.Add(dt);
//Create object of the class
TestAddRemoveCol obj = new TestAddRemoveCol();
//Add column at the specific location in the dataset
DataTable dt2 = obj.AddCol(ds, "EndDate", typeof(String), 2);
//Copy data from one column to another
DataTable dt3 = obj.CopyCol(dt2, "col3", "EndDate");
//Remove column with the specific name
obj.RemoveCol(dt3, "col3");
//测试添加/删除列
//为测试创建虚拟数据集
数据集ds=新数据集();
DataTable dt=新的DataTable();
DataColumn dc=新的DataColumn(“col1”,typeof(DateTime));
dt.Columns.Add(dc);
dc=新数据列(“col2”,类型(日期时间));
dt.Columns.Add(dc);
dc=新数据列(“col3”,类型(日期时间));
dt.Columns.Add(dc);
dc=新数据列(“col4”,类型(日期时间));
dt.Columns.Add(dc);
DataRow dr=dt.NewRow();
dr[0]=转换为当前时间(“2011年1月1日”);
dr[1]=转换为当前时间(“2011年1月2日”);
dr[2]=转换为当前时间(“2011年1月3日”);
dr[3]=转换为当前时间(“2011年1月4日”);
dt.Rows.Add(dr);
ds.Tables.Add(dt);
//创建类的对象
TestAddRemoveCol obj=新的TestAddRemoveCol();
//在指定位置添加列