datatable把一个LIst的数据放入两个colum防止窜行的做法

 DataColumn objectOne = new DataColumn("objectOne", typeof(object));

                dt.Columns.Add(objectOne);

//更改databatle列的类型的方法

 

List<string> item = new List<string>();

            item.Add("第一列数据");

            item.Add("第二列数据");

            item.Add("第三列数据");

            item.Add("第四列数据");

            item.Add("第五列数据");

            item.Add("第六列数据");

            item.Add("第七列数据");

            item.Add("第八列数据");

            item.Add("第九列数据");

            DataTable dt = new DataTable();



            dt.Columns.Add("名称一");

            dt.Columns.Add("名称二");

            DataRow dr = dt.NewRow() ;



            for (int i = 0; i < item.Count; i+=2)

            {

                //如果这里不每次实例化就会每一次循环的数据覆盖上一次的

                dr = dt.NewRow();

                //写到指定的列上

                dr["名称一"] = item[i];

                //判断如果是奇数的话,最后一列不赋值

                if((i+1)<item.Count)

                {

                    dr["名称二"] = item[i + 1];

                }

                dt.Rows.Add(dr);

            }

            //最后绑定到datagridview上成为数据源就OK了

            this.dgvShow.DataSource = dt;

 cells里面放置(for和foreach两种情况)

int i =0

foreach (AMDatumCategory datumCategory in this.spellCodeDatumCategoryMap[key])

                            {                                

                                if (i % 2 == 0)

                                {

                                    DataRow dr = dt.NewRow();

                                    dr["IdOne"] = datumCategory.DatumCategoryId;

                                    dr["名称一"] = datumCategory.Name;

                                    dt.Rows.Add(dr);

                                    

                                }

                                else

                                {

                                    dt.Rows[(i - 1)/2]["IdTow"] = datumCategory.DatumCategoryId;

                                    dt.Rows[(i - 1)/2]["名称二"] = datumCategory.Name;

                                }

                                

                                i++;

                            }

 当i=3的时候,实际上要往dt的第2行添加数据,也就是dt.Rows[1]

dt的最后一行的行号,是当前i-1除以2 

dt = new DataTable(); dt.Columns.Add("IdOne"); dt.Columns.Add("名称一"); dt.Columns.Add(" "); dt.Columns.Add("IdTow"); dt.Columns.Add("名称二"); for (int i = 0; i < lstCategory.Count; i++) { DataRow dr = dt.NewRow(); dr["IdOne"] = lstCategory[i].DatumCategoryId; dr["名称一"] = lstCategory[i].Name; i++; if (i < lstCategory.Count) { dr["IdTow"] = lstCategory[i].DatumCategoryId; dr["名称二"] = lstCategory[i].Name; } dt.Rows.Add(dr); }

 

 for (int i = 0; i < this.dgvCategoryDatum.Columns.Count; i++)

                {

                    this.dgvCategoryDatum.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;

                }

//禁止对dgvCategoryDatum的列添加排序按钮

 

 

你可能感兴趣的:(Datatable)