DataSet是一個(gè)數(shù)據(jù)集合,存儲(chǔ)在內(nèi)存中,算是一個(gè)臨時(shí)的數(shù)據(jù)庫(kù)。
個(gè)人覺(jué)得,不是太常用了,DataTable或者直接用List<model>存數(shù)據(jù)比這個(gè)好。
還是也說(shuō)一下使用方法吧。
DataSet ds =new DataSet("school");DataTable dt = new DataTable("stu");dt.columns.Add("列名",typeof(string));
//注意DataRow dr =new DataRow(); 不能這樣用,為什么呢?看下面綠字
/*
DataRow的構(gòu)造方法是 PRotected internal的,你是調(diào)用不到的。
但是跟DataRow同一個(gè)程序集的 DataTable可以調(diào)。
*/
DataRow dr = dt.NewRow();dr["列名"] ="xxx";dt.Rows.Add(dr);ds.Tables.Add(dt);
該類(lèi)是一個(gè)適配器模式的應(yīng)用。那么這個(gè)適配器究竟適配了什么呢?
DataAdapter適配了DataTable和DataReader返回值的適配。
string conn =""; //連接字符串string sql =""; //sql語(yǔ)句/*DataAdapter是對(duì) Connection、Command、以及DataReader的封裝 */DataAdapter da =new DataAdapter(sql,conn);DataTable dt =new DataTable();/* *****說(shuō)明****** 1. 先構(gòu)造好列,再填充的話,會(huì)提高效率。 2. Fill(0,10,dt);是一種分頁(yè)方式,適用于小項(xiàng)目。 去一頁(yè),讀全部!*/da.Fill(0,10,dt);
1.一種常用獲取表的方式
//簡(jiǎn)寫(xiě)哈,簡(jiǎn)寫(xiě)DataSet ds =new DataSet();DataAdapter da =new DataAdapter(SQL語(yǔ)句,連接字符串)da.Fill(ds);//其實(shí),真的做項(xiàng)目,這種方式獲取表并不推薦。DataTable dt =ds.Tables[0];2.推薦做法
//還是簡(jiǎn)寫(xiě)哈,簡(jiǎn)寫(xiě)using(Connection conn =new Connection("連接字符串")){ using(Command cmd =conn.CreateCommand()) { using(DataReader reader = cmd.ExecuteReader()) { DataTable dt =new DataTable(); dt.Load(reader); } } }
1.在C/S模式下
在C/S模式下使用DataSet。
2.在B/S模式下
在B/S模式下使用DataSet。B/S模式下(asp.net)使用DataSet,有1000個(gè)請(qǐng)求,
Web服務(wù)器內(nèi)存中就會(huì)有1000個(gè)DataSet。是不是要用,還是自己取舍。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注