C# 在.net 1.1中将列添加到数据集中

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.

我的数据集(数据集名称dsEmp)有25列,在这里我需要添加一个新列,列名为
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(); //在指定位置添加列