C 向DataTable插入列或行資料

2021-07-13 20:07:32 字數 1196 閱讀 1291

這次用到了c#中的datatable,主要是把從資料庫中取出的一張表的資料進行合併和對齊,同時處理後的資料要傳送到前台進行展示

,所以在進行處理的時候原表的各個列名還要進行儲存,首先我在網上找到了相關的向datatable中插入一行資料的**,然後進行了修改:

dt.columns.add(ss);

dt.columns.add("name");

datarow dr = dt.newrow();

object objs = ;

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++)

//;//    dr["id"] = objs[0];

//    dr["name"] = objs[1];

//    dt.rows.add(dr);              

//}

哦對了,還有乙個就是要把原表的列名原封不動的傳過去:

for (int m = 0; m < colum_count; m++)

最近用到的datatable的操作目前就這樣了有!以後再補充吧!

C 中向dataTable中新增資料

今天接收介面資料,封裝成了datatable型別,但是在接受資料是datatable中沒有資料,原因是沒有新增資料。本人誤以為 dr cardid jobject cardid tostring 就完成了資料的新增。現在將完整資料新增過程表述如下 首先宣告 datatable datatable n...

C 實現DataTable轉化為泛型或JSON程式

datatable轉化為泛型 public class converthelperwhere t new object value dr tempname 取值 如果非空,則賦給物件的屬性 if value dbnull.value else if pi.propertytype.name stri...

使用C 向ACCESS中插入資料

使用c 向access中插入資料 1.建立並開啟乙個oledbconnection物件 string strconn provider microsoft.jet.oledb.4.0 data source sample.mdb oledbconnection myconn new oledbcon...