成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

剖析ADO.NET使用DataAdapter類

開發(fā) 后端
這里就ADO.NET使用DataAdapter類,對于一個DataAdapter對象,可以設置四個DBCommand,文章有詳細的介紹,希望對大家有幫助。

ADO.NET使用還是比較常用的,于是我研究了一下ADO.NET,在這里拿出來和大家分享一下,希望對大家有用。說說關于ADO.NET使用DBCommand這個類,所有對數(shù)據(jù)庫的操作都是通過它進行完成的。如果把DBConnection比作通路的話,那么DBCommand就是在這條通路上來回跑動的車輛。缺少了它,在程序中所有對數(shù)據(jù)庫的操作無法傳遞給數(shù)據(jù)庫服務器端。因此可以說,DBConnection和DBCommand組成ADO.NET的基礎。在對DBCommand對象進行操作的時候,需要注意如下幾點。

設置CommandText和CommandType屬性,一般情況下是不需要設置CommandType屬性,但是如果執(zhí)行存儲過程,則需要設置CommandType屬性為StoredProcedure。建議多使用參數(shù),而減少字符串的拼接,這樣一是可以減少程序書寫錯誤,而可以避免語句蛀蟲。參數(shù)的使用可以如下:

  1. SqlCommand myComm = new SqlCommand();  
  2. myComm.CommandText = “SELECT * FROM UserInfo WHERE UserName = @UserName ”;  
  3. myComm.Parameters.Add( “@UserName”, yourValue ); 

#T#區(qū)分ExecuteNonQuery方法和ExecuteReader方法,前者是主要是處理非查詢類型的語句,返回的個數(shù)是受影響的個數(shù),但其對“INSERT”語句是不起任何作用的;而后者主要是處理查詢語句,但是需要借助DataReader來輔助操作。***不要忘了在用完后,調(diào)用Dispose方法對DBCommand對象進行釋放。而要想獲得查詢的記錄集,僅僅靠DBCommand是無法完成的,因此要借助DataReader來獲得所查詢的記錄。例如:

  1. SqlCommand myComm = new SqlCommand();  
  2. myComm.CommandText = “SELECT * FROM UserInfo WHERE UserName = @UserName ”;  
  3. myComm.Parameters.Add( “@UserName”, yourValue );  
  4. SqlDataReader myReader = myComm.ExecuteReader();  
  5. while( myReader.Read() )  
  6. {  
  7. myReader.GetValue( index );// Get value through specific index  
  8. }  
  9. myReader.Close();  
  10. myComm.Dispose(); 

所以在DataReader中比較常見的兩個方法,就是Read和GetValue,前者是判斷是否讀出記錄,后者是獲得記錄中某個字段的值,其返回是object類型對象,需要進行類型轉(zhuǎn)換才能得到想要得字段值。可惜的是,DataReader每次只能讀出一行記錄,因此在使用它的時候,查詢結(jié)果要逐行讀取,其間它對DBConnection是獨享,即不能在此時刻用同一個DBConnection去做其它的數(shù)據(jù)庫操作。

要提的一點是,在ADO.NET中提供了一個更好的、更方便的數(shù)據(jù)操作工具,即DataAdapter類。對于一個DataAdapter對象,可以設置四個DBCommand,分別是SelectCommand、InsertCommand、DeleteCommand、UpdateCommand。而這四個DBCommand并不需要全部初始化,主要是看程序的具體要求,如果只是用到查詢方面,那么只需要設定一下SelectCommand即可,這和一般的DBCommand操作一樣

對于DataAdapter操作返回的記錄集,需要用DataSet來進行輔助操作,例如:

獲得查詢的記錄集

  1. DataAdapter.Fill( DataSet, “yourTableName” );// “yourTableName” is the name using in data set 

更新數(shù)據(jù)庫

  1. DataAdapter.Update( DataSet, “yourTableName” ); 

此處要注意的是:首先DataSet要發(fā)生變化,如果和Fill之后一樣,對數(shù)據(jù)庫則沒什么影響;再者要設置InsertCommand、DeleteCommand、UpdateCommand,如果不設置對應操作語句,則一樣對數(shù)據(jù)庫沒任何影響。相對而言,DataAdapter效率要差一些,但是避免了一些操作,讀取記錄集,對獲得記錄數(shù)據(jù)進行類型轉(zhuǎn)換等等。同時其對DBConnection的占有只是在對數(shù)據(jù)庫操作的時候,操作完即立刻釋放。因此,強烈建議多ADO.NET使用DataAdapter,而少ADO.NET使用DataReader。在文章的結(jié)尾,要說明的,以上所提到的只是數(shù)據(jù)庫操作的虛類名,如果程序真正操作數(shù)據(jù)庫,則要根據(jù)數(shù)據(jù)庫的不同,選擇不同子類來建立對象。具體說明如下:

責任編輯:田樹 來源: 博客
相關推薦

2009-11-13 10:57:28

ADO.NET Dat

2009-11-04 11:30:35

ADO.NET Dat

2010-01-04 10:19:45

ADO.NET Dat

2009-11-11 14:04:14

ADO.NET連接池

2009-11-04 10:07:52

ADO.NET DbP

2009-11-12 10:45:45

ADO.NET連接測試

2009-11-04 11:40:38

ADO.NET Dat

2009-12-28 15:11:36

ADO.NET專家

2009-12-23 16:05:47

ADO.NET錯誤

2009-12-28 15:32:04

ADO.NET構(gòu)造

2009-12-21 11:18:09

ADO.NET體系結(jié)構(gòu)

2009-11-13 13:35:54

ADO.NET數(shù)據(jù)服務

2009-11-12 14:26:34

ADO.NET執(zhí)行事務

2009-12-22 10:43:48

ADO.NET類庫

2009-12-18 15:11:50

ADO.NET類

2009-11-12 13:26:56

使用ADO.NET參數(shù)

2009-12-22 10:58:50

ADO.NET類

2009-11-13 13:11:37

ADO.NET連接池

2009-12-30 16:58:43

ADO.NET

2009-11-12 10:06:01

ADO.NET讀取數(shù)據(jù)
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 特级做a爰片毛片免费看108 | 视频在线一区二区 | 亚洲精品资源 | 91av亚洲| www操操 | 欧美一区二区大片 | 91福利电影在线观看 | 成人在线免费网站 | 国产色| 91性高湖久久久久久久久_久久99 | 亚洲精品乱码8久久久久久日本 | 欧美一级二级三级视频 | 嫩草视频网 | 日韩中文字幕视频在线观看 | 天天拍天天操 | 日韩成人av在线 | 国产精品福利久久久 | 国产午夜影院 | 国外成人在线视频网站 | 亚洲午夜精品 | 亚洲小说图片 | 成人在线观看中文字幕 | 精品国产乱码久久久久久88av | 日韩高清一区二区 | 国产日韩欧美激情 | 高清成人免费视频 | 老妇激情毛片免费 | 日韩在线 | 夫妻午夜影院 | 波多野结衣在线观看一区二区三区 | 国产精品一区在线 | www.4hu影院 | 我要看一级片 | 国产成人精品一区二区三区在线 | 成人一级片在线观看 | 99久久免费精品国产男女高不卡 | 精品福利在线视频 | 久久天堂 | 国产精品久久久一区二区三区 | 女人牲交视频一级毛片 | 欧美精品一区二区在线观看 |