你可以把DataTable和DataSet看做是數據容器,比如你查詢數據庫后得到一些結果,可以放到這種容器里,那你可能要問:我不用這種容器,自己讀到變量或數組里也一樣可以存起來啊,為什么用容器?原因是,這種容器的功能比較強大,除了可以存數據,還可以有更大用途。舉例:在一個c/s結構的桌面數據庫系統里,你可以把前面存放查詢結果的容器里的數據顯示到你客戶端界面上,用戶在界面上對數據進行添加、刪除、修改,你可以把用戶的操作更新到容器,等用戶操作完畢了,要求更新,然后你才把容器整個的數據變化更新到中心數據庫,這樣做的好處是什么?就是減少了數據庫操作,客戶端速度提高了,數據庫壓力減小了。DataSet可以比作一個內存中的數據庫,DataTable是一個內存中的數據表,DataSet里可以存儲多個DataTable
DataSet:數據集。一般包含多個DataTable,用的時候,dataset["表名"]得到DataTable DataTable:數據表。 一: SqlDataAdapter da=new SqlDataAdapter(cmd); DataTable dt=new DataTable(); da.Fill(dt); ----------------- 直接把數據結果放到datatable中, 二: SqlDataAdapter da=new SqlDataAdapter(cmd); DataSet dt=new DataSet(); da.Fill(dt); ---------------- 數據結果放到dataset中,若要用那個datatable,可以這樣:dataset[0] 更常見的用法: SqlDataAdapter da=new SqlDataAdapter(cmd); DataSet dt=new DataSet(); da.Fill(dt,"table1"); 用的時候:這樣取datatable: dataset["table1"]
向DataTable中手動添加行內容,并進行綁定、更新、排序DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add(new DataColumn( "整數值 ", typeof(Int32))); dt.Columns.Add(new DataColumn( "字符串值 ", typeof(string))); dt.Columns.Add(new DataColumn( "日期時間值 ", typeof(DateTime))); dt.Columns.Add(new DataColumn( "布爾值 ", typeof(bool))); for (int i = 1; i <= 9; i++) { dr = dt.NewRow(); dr[0] = i; dr[1] = "項 " + i.ToString(); dr[2] = DateTime.Now; dr[3] = (i % 2 != 0) ? true : false; dt.Rows.Add(dr); } dataGrid1.DataSource = new DataView(dt); dataGrid1.DataBind();更多的操作:1.創建表及插入列
DataTable dt=new DataTable();
dt.Colunmns.Add("Name",System.Type.GetType("System.String"));2.插入行
DataRow newrow = dt.NewRow();
newrow[0]="aa";
dt.Rows.Add(newrow);3.排序
DataView dv = dt.DefaultView;
dv.Sort = "Name Desc";
DataTable dt1 = dv.ToTable();4.指定位置插入行
DataTable dt = new DataTable("表名");DataRow dr = dt.NewRow(); dr[0]="安江聯社戶外模"; dr[1] = "555"; dr[2] = "200707"; dr[3] = "0.00"; dr[4] = "0.00"; dr[5] = "0.00"; dr[6] = "0.00";
dt.Rows.Add(dr); //在最後插入行
dtb1.Rows.InsertAt(dr,j); //j為指定的行的位置插入;dataGridView1.DataSource = dt;
更多內容參:http://topic.csdn.net/t/20030904/11/2222410.html
http://msdn.microsoft.com/zh-cn/library/hfx3s9wd.aspx
新聞熱點
疑難解答