日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > 數據庫應用 > 關于增刪改查的幾個對象及方法

關于增刪改查的幾個對象及方法

來源:程序員人生   發布時間:2014-12-14 09:00:10 閱讀次數:5421次

         近日和小火伴們在進行機房合作,我負責的是D層。在重新寫sqlhelper時,發現查詢操作用到的是SqlDataAdapter對象,我記得還有個SqlDataReader對象也是履行對數據庫的查詢操作。還有增刪改方法除ExecuteNonQuery()還有無其他方法,返回值integer和boolean有甚么不同。個人重構時沒好好研究,現在好好總結1下,歡迎各位斧正。

 

 

1、增刪改的方法

 

            我們在對數據庫進行增刪改操作時1般使用sqlcommand命令對象,這個對象的方法有3個。非別是ExecuteNonQuery()、ExecuteReader()、ExecuteScalar()。其中ExecuteNonQuery();它的返回值類型為int型。多用于履行增加,刪除,修改數據。返回受影響的行數。

 

           具體來講,此方法用于履行任何不從數據庫返回結果集的SQL操作命令,包括INSERT INTO、UPDATE、DELETE語句、沒有返回數值的存儲進程、CREATE TABLE和CREATEINDEX之類的DDL語句。ExecuteNonQuery方法對UPDATE、INSERT INTO和DELETE這些操作語句,其返回值為該命令所影響的行數。對所有其他類型的語句,返回值為⑴。如果產生回滾,返回值也為⑴。所以如果讓其履行查詢語句,返回值為⑴,無意義。我在個人重構時返回的是Boolean型。實際上是1樣的,當返回值為非零時,說明數據庫中受影響的行不為零,所以履行增刪改操作True. 當返回值為零或負值時,說明該操作沒有履行成功。

 


2、查詢的方法

          我們知道sqlcommand對象中有2個查詢的方法,分別是ExecuteReader()、ExecuteScalar(),但是我們在寫sqlhelper時1般用到的是SqlDataAdapter對象,這3者有甚么不同呢?

 

           ExecuteScalar()返回1個int型變量。如果SQL語句是Select查詢,則僅僅返回查詢結果集中第1行第1列,而疏忽其他行和列。如果SQL語句不是Select查詢,則這個返回結果沒任何作用。由于不知道sql語句究竟是甚么樣的結構(有多是int,有多是Char等其它,)所以ExecuteScalar()方法返回1個最基本的類型Object,這個類型是所有類型的基類,可以轉換為任意類型,所以用前需強迫轉換。

 

           ExecuteReader 返回1個DataReader對象,如果在SqlCommand對象中調用,則返回SqlDataReader,如果在OledbCommand對象中調用,返回的是OledbDataReader,可以調用DataReader的方法和屬性迭代處理結果集。ExecuteReader方法存在的目的:盡量快的對數據庫進行查詢并得到結果。

 

          還有SqlDataAdapter對象,下面主要講它和SqlDataReaderr的區分。

 

3、SqlDataReader與SqlDataAdapter的區分

 

            我們重構都用SqlDataAdapter+DataSet。SqlDataReader咋了,招誰惹誰了,為啥沒人用。這實際上是適合不適合的問題,就像電視劇中常常出現的那句臺詞“你是個好人,但是我們不適合”。他倆具體合適哪些情況呢。

 

            1.SqlDataReader //基于連接,只讀訪問合適數據量較小。(連接模式)

                     SqlDataAdapter //基于非連接,適于數據量較大時,可以另行修改,最后再把修改結果返回給數據庫。要求資源也大1點  (斷開模式)

            2.SqlDataAdapter 讀取數據后將數據集放入DataSet ,DataSet 的數據存在本地客服機內存。

            3.SqlDataReader返回的是1個數據讀寫器,只能1條條的讀,操作起來不靈活,1般在只讀的時候才用到。

                    SqlDataAdapter返回的是數據集或表,可以對其中的數據作任意操作

            4.寫法上不同:

                    SqlDatReader履行前須先打開數據庫,然后須生成1個command對象。再由command.ExecuteReader()方法賦值。完成后須手動關閉聯接。

                        SqlCommand cmd = newSqlCommand("select * from stu", conn);

                                    conn.Open();

                                    SqlDataReader rdr= cmd.ExecuteReader();

                                    conn.close();

                    SqlDataAdapter 履行時,自動打數據庫,且不用Command的ExecuteReader方法進行賦值,完成后自動斷開聯接。

                      SqlDataAdapteradptr = new SqlDataAdapter(sql, conn);

                                   DataSet ds = newDataSet();

                                   adptr.Fill(ds,"stu");

 

 

4、總結

                 回想1年前就看了紅皮書,就簡單了解了觸及SQLSERVER數據庫操作的7個對象,對現在每次遇到時都有新的收獲。覺自己知之甚少,嘆其之強大。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 91 久久 | 在线视频久久 | 国产一区二区在线观看免费视频 | 尤物在线观看 | 日韩欧美在线不卡 | 美女网站视频色 | 久久国产精品网 | 黄色大片免费在线观看 | 嫩草影院官网 | 91在线导航 | 热re99久久精品国产99热 | 综合在线视频 | 精品一区二区久久久久久久网站 | 天天色网站 | 激情婷婷综合 | 天堂成人国产精品一区 | 国产小视频在线 | 日韩一区二区三区av | 丁香婷婷激情 | 成人国产精品视频 | 黄色毛片免费观看 | 欧美日韩中文字幕在线视频 | 97av在线视频免费播放 | 黄色二区 | 欧美插插视频 | 国产真实精品久久二三区 | 玖玖精品在线 | 超黄网站在线观看 | 国产精品国产三级国产aⅴ中文 | 91欧美一区二区三区综合在线 | 国内精品国产成人国产三级粉色 | 中文一区二区 | 日本视频在线 | 91九色在线播放 | 精品性高朝久久久久久久 | 99在线免费视频 | 噢美一级片 | 男人都懂的网站 | 国产一区二区三区色淫影院 | 91精品久久久久久久久久久 | 99一区二区 |