为DataTable动态添加列

     public const string TEMP_TABLE_NAME = "Temp";

        public void CreateTempTableStructure(EmployeeDataSet.EmployeesALLDataTable employeeDataTable)

        {

            if (!this.Tables.Contains(TEMP_TABLE_NAME))

            {

                DataTable tempTable = new DataTable(TEMP_TABLE_NAME);

                foreach (DataColumn column in employeeDataTable.Columns)

                {

                    DataColumn dataColumn = new DataColumn();

                    dataColumn.DataType = typeof(string);

                    dataColumn.Caption = column.Caption;

                    dataColumn.ColumnName = column.ColumnName;                       

                    tempTable.Columns.Add(dataColumn);

                }

 

                foreach (InsuranceDataSet.InsuranceTypesRow insuranceTypeRow in InsuranceDataSet.GetCacheData().InsuranceTypes)

                {

                    DataColumn c1 = new DataColumn();

                    c1.DataType = typeof(string);

                    c1.Caption = insuranceTypeRow.Name + "/公司承担";

                    c1.ColumnName = "Column" + insuranceTypeRow.ID.Trim() + "1";

                    tempTable.Columns.Add(c1);

                    DataColumn c2 = new DataColumn();

                    c2.DataType = typeof(string);

                    c2.Caption = insuranceTypeRow.Name + "/个人承担";

                    c2.ColumnName = "Column" + insuranceTypeRow.ID.Trim() + "2";

                    tempTable.Columns.Add(c2);

                }

                this.Tables.Add(tempTable);

            }

        }
 
  

①、创建DataTable对象:DataTable tbl = new DataTable("TableName");

②、将DataTable添加到DataSet对象的Table集合

    DataSet ds = new DataSet();

    DataTable tbl = new DataTable("Customers");

    ds.Tables.Add(tbl);

 

    DataSet ds = new DataSet();

    DataTable tbl = ds.Tables.Add("Customers");

 DataTable对象只能存在于至多一个DataSet对象中。如果希望将DataTable添加到多个DataSet中,就必须使用Copy方法或Clone方法。Copy方法创建一个与原DataTable结构相同并且包含相同行的新DataTable;Clone方法创建一个与原DataTable结构相同,但没有包含任何行的新DataTable。

③、为DataTable添加列

    DataTable tbl = ds.Tables.Add("Orders");

    DataColumn col =tbl.Columns.Add("OrderID",typeof(int));

    col.AllowDBNull = false;

    col.MaxLength = 5;

    col.Unique = true;

    tbl.PrimaryKey = new DataColumn[]{tbl.Columns["CustomersID"]};

    当设置主键时,AllowDBNull自动设置为False;

④、处理自动增量列

    DataSet ds = new DataSet();

    DataTable tbl = ds.Tables.Add("Orders");

    DataColumn col = tbl.Columns.Add("OrderID",typeof(int));

    col.AutoIncrement = true;

    col.AutoIncrementSeed = -1;

    col.AutoIncrementStep = -1;

    col.ReadOnly = true;

⑤、添加基于表达式的列

    tbl.Columns.Add("ItemTotal",typeof(Decimal),"Quantity*UnitPrice");

你可能感兴趣的:(Datatable)