CReader 源過程(Access): 作用:利用DataReader閱讀類,執(zhí)行數(shù)據(jù)的“只向前”的讀取。 問:什么是DataReader? 答:ADO.NET DataReader對象可以從數(shù)據(jù)庫中檢索只讀、只進的數(shù)據(jù)流。因為每次在內(nèi)存中的數(shù)據(jù)只有一行,所以使用DataReader可提高應(yīng)用程序的性能并減少系統(tǒng)開銷。它還提供了未緩沖的數(shù)據(jù)流,該數(shù)據(jù)流使過程邏輯可以有效地按順序處理從數(shù)據(jù)源中返回的結(jié)果。由于數(shù)據(jù)不在內(nèi)存中緩存,所以在檢索大量數(shù)據(jù)時,DataReader是一種合適的選擇。 string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath ("db1.mdb");//ACCESS鏈接字符串 OleDbConnection ConnAcc=new OleDbConnection (strConn); //OleDb鏈接類的實例化 ConnAcc.Open ();//打開數(shù)據(jù)庫 string strSQL="SELECT * FROM 表名1";//SQL語句 OleDbCommand cmd = new OleDbCommand(strSQL,ConnAcc);//創(chuàng)建Command命令對象 OldDbDataReader dr=cmd.ExecuteReader();//創(chuàng)建DataReader對象,并調(diào)用ExecuteReader從數(shù)據(jù)源檢索行 dr.Read();//啟動閱讀器的Read方法,返回行的每一列 //..數(shù)據(jù)讀取.. dr.Close();//關(guān)閉閱讀器 ConnAcc.Close();//關(guān)閉數(shù)據(jù)庫 GetDataSet 源過程(Access): 作用:利用DataSet,DataAdapter讀取數(shù)據(jù)。 問:什么是DataSet? 答:DataSet對象與ADO Recordset對象相似,但功能更為強大,并具有另一重要區(qū)別:DataSet始終是斷開的。DataSet對象表示數(shù)據(jù)的緩存,具有類似數(shù)據(jù)的結(jié)構(gòu),如表、列、關(guān)系和約束。但是,盡管DataSet可以像數(shù)據(jù)庫那樣運行,但重要的是要記?。篋ataSet對象不直接與數(shù)據(jù)或其他源數(shù)據(jù)進行交互。這使得開發(fā)人員能夠使用始終保持一致的編程模型,而不用理會源數(shù)據(jù)的駐留位置。 問:什么是DataAdapter? 答:DataAdapter對象在DataSet與數(shù)據(jù)源之間起橋梁作用。 string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath ("db1.mdb");//ACCESS鏈接字符串 OleDbConnection ConnAcc=new OleDbConnection (strConn); //OleDb鏈接類的實例化 ConnAcc.Open ();//打開數(shù)據(jù)庫 string strSQL="SELECT * FROM 表名1 "; //要執(zhí)行的SQL語句 OleDbDataAdapter da=new OleDbDataAdapter(strSQL,ConnAcc); //創(chuàng)建DataAdapter數(shù)據(jù)適配器實例 DataSet ds=new DataSet();//創(chuàng)建DataSet實例 da.Fill(ds,"自定義虛擬表名");//使用DataAdapter的Fill方法(填充),調(diào)用SELECT命令 ConnAcc.Close ();//關(guān)閉數(shù)據(jù)庫 GetExecuteNonQuery 源過程(Access): 作用:利用ExecuteNonQuery,執(zhí)行數(shù)據(jù)的插入、更新、刪除。 問:什么是ExecuteNonQuery? 答:在ADO.NET中,ExecuteNonQuery方法用于執(zhí)行不需要返回結(jié)果的命令,如插入、刪除和更新等操作。 string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath ("db1.mdb");//ACCESS鏈接字符串 OleDbConnection ConnAcc=new OleDbConnection (strConn); //OleDb鏈接類的實例化 ConnAcc.Open ();//打開數(shù)據(jù)庫 string strSQL="INSERT INTO 表名1、UPDATE 表名1 SET、DELETE FROM 表名1";//插入、更新、刪除的SQL語句 OleDbCommand cmd=new OleDbCommand (strSQL,ConnAcc);//創(chuàng)建Command命令對象 cmd.ExecuteNonQuery();//執(zhí)行命令 ConnAcc.Close ();//關(guān)閉數(shù)據(jù)庫 GetExecuteScalar 源過程(Access): 作用:利用ExecuteScalar統(tǒng)計數(shù)據(jù)。 問:什么是ExecuteScalar? 答:ExecuteScalar方法可以返回單個值,如求和、總行數(shù)等SQL語句的聚合函數(shù)。 string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath ("db1.mdb");//ACCESS鏈接字符串 OleDbConnection ConnAcc=new OleDbConnection (strConn); //OleDb鏈接類的實例化 ConnAcc.Open ();//打開數(shù)據(jù)庫 string strSQL="SELECT COUNT(*) FROM 表名1";//SQL統(tǒng)計,SUM等等 OleDbCommand cmd = new OleDbCommand(strSQL,ConnAcc);//創(chuàng)建Command命令對象 int intNum=(int)cmd.ExecuteScalar();//得到統(tǒng)計數(shù),SUM則用double ConnAcc.Close();//關(guān)閉數(shù)據(jù)庫 注:使用SQL Server請將關(guān)鍵字OleDb改為Sql,并修改字符串strConn為SQL Server鏈接參數(shù)即可。Socut.Data組件的原理,其實只是將Access與SQL Server數(shù)據(jù)庫的操作代碼有機整裝成類,在調(diào)用時只需手寫少量的SQL變量語句。本文檔僅作為Socut.Data組件的源碼參考,所列之處均為精華部分,供學(xué)有余力的學(xué)員自行查看,不在規(guī)定學(xué)習(xí)范圍內(nèi)。 |