C#向DataTable插入列或行数据

     这次用到了C#中的Datatable,主要是把从数据库中取出的一张表的数据进行合并和对齐,同时处理后的数据要发送到前台进行展示

,所以在进行处理的时候原表的各个列名还要进行保存,首先我在网上找到了相关的向Datatable中插入一行数据的代码,然后进行了修改:

            dt.Columns.Add(ss);
            dt.Columns.Add("Name");
            DataRow dr = dt.NewRow();
            object[] objs = { "sd", "dlj" };
            dr["ID"] = objs[0];
            dr["Name"] = objs[1];
            dt.Rows.Add(dr);

         首先前两行代码是向dt这个Datatable中添加两个列名,然后新建一个DataRow对象吧,这个DataRow没有具体查过,先这样叫吧,

   然后是新建一个object类型的数组,用来存储要添加进去的对象,在这里之所以用Object是因为有时候我们并不知道我们要添加的数据

是什么类型,这样就可以避免出现因为类型不一样而导致的错误,还有就是当我们要插入的数据不一定都是同一类型的时候,我们也可

以用这种方法,但是我感觉这个时候如果不用object我们可以用泛型来代替。

  dr["ID"] = objs[0];dr["Name"] = objs[1]; 这两行代码也可以用ItemArray = objs;来代替,只是上面的两行代码可以制定要添加的

某列的数据。

但是这个代码也有一定的问题,比如一次只能插入一行数据,如果再想插入另外一行数据的话,就会提示dr已经是表dt

中的对象,这个时候可以给dt添加一个类似于数据库中ID自增长的主键,不过我感觉这样比较麻烦,要给表dt添加一列

后来我想了另外一种方法就是,用一个for循环每一次循环的时候都创建一个DataRow对象,这样就可以插入多个对象了

代码如下:

 //for (int i = 0; i < 3; i++)
            //{
            //    DataRow dr = dt.NewRow();
            //    object[] objs = { "sd", "dlj" };
            //    dr["ID"] = objs[0];
            //    dr["Name"] = objs[1];
            //    dt.Rows.Add(dr);              
            //}

哦对了,还有一个就是要把原表的列名原封不动的传过去:

 for (int m = 0; m < colum_count; m++)
               {
                   dt.Columns.Add(temp_dt.Columns[m].ColumnName);
               }

最近用到的Datatable的操作目前就这样了有!以后再补充吧!


你可能感兴趣的:(C#)