亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SQL 事務及實例演示

系統 2089 0

簡介

?????? 事務,英文名稱是 transaction 。是在對數據庫進行管理操作過程中一個邏輯單位,由有限的操作序列構成。


其實這個概念很好懂,簡單理解就是:事務就是在使用數據庫中的一個操作,由一些操作放到一起構成一個完


整的事務。例如:坐火車。假如坐火車只有兩個動作,買票,上車;這樣的話坐火車就需要兩個操作來完成,


買票、上車,現在將買票、上車都定義到這個坐火車的操作里面。這樣的話就方便了,想坐火車就直接調用坐


火車操作就完成坐火車的操作了。這里的坐火車就是一個事務,這里還有一種情況就是買票成功了,但是沒有


趕上火車,這時候我就需要把票給退了,退票這個操作就稱為回滾。

?

特性

??????? 那到底什么才是數據庫事務呢?就產生了數據庫事務的四個特性,通過這四個特性我們更好的理解事務,也


能夠反過來來辨別什么樣的操作是事務。


數據庫事務的特性簡單來說就是 ACID

?

?????? A( Atomic ) 翻譯為中文就是原子性


原子就是不可分割(在最初的時期是這么理解的)。所以可以理解到事務就是一個整體,一旦執行就是


執行整個事務,要么就不執行。


?????? C (Consistency)一致性


就是事務執行后,保證數據庫的所有數據都從一個狀態到另一個狀態。用上面的例子,可以這樣理解,


你上半身進了火車、坐好了;你的腳也要上火車、放好了(有點慎得慌)。但是是這個道理。


I (Isolation)隔離行


就是事務之間在執行的時候互補干擾,這里會提到一個并發控制的概念。什么是并發控制呢?并發控制


就是針對并發操作對數據操作異常的控制。舉個例子,又是買火車票;小林和小李都去網上買票,還


5 張,他倆 11 11 同時去買同一張,這樣兩個事務同時訪問這個火車票,同時將剩余張改為 4. 這時候


實際上賣了 2 張,實際上剩了 3 張,而數據庫中為 4 張,這就造成了數據的異常。怎么處理呢?有一個辦


法,就是當你處理這個對象的時候,將這個對象鎖定( lock ),當完成事務后解鎖( unlock )。只有當


對象的狀態為 unlock 的狀態時,才能夠對這個對象進行訪問。說了多了啊,簡單擴展一下。嘿嘿


D( Durability ), 持久性


這個就更容易理解了。簡單理解就是你的對數據庫的操作一定是可以永久存在數據中的。

?

通過上述的講解,我們簡單了解了事務和事務的回滾以及事務的特性。下面我們通過另一個簡單的小例子來從


代碼層面上感受一下事務,順便熟悉泛型的使用。


環境: vs 2010? sql 2008

項目測試:通過事務來更新、添加數據

創建數據庫代碼


?

     create database login



use login



create table login

(

	username varchar(20),

	userpwd varchar(20),

	userlevel varchar(20),

)
  



界面

?


SQL 事務及實例演示


超級簡單的界面,為了整體性,還是上傳下,嘿嘿


客戶端代碼

?

    private void btnExcuteSQLs_Click(object sender, EventArgs e)

        {

            List<string > strsql=new List<string>() ;

            string strone = "insert into login values('aaa','aaa','aaa')";

            string strtwo = "update login set userlevel ='12' where username='cfl' ";

            strsql.Add(strone);

            strsql.Add(strtwo );

            try

            {

                ExcuteSQLs(strsql);

            }

            catch (Exception ee )

            {



                MessageBox.Show(ee.Message);

                

                throw new Exception(ee.Message );

                //MessageBox.Show(ee.Message );

            } 

        }

        public void ExcuteSQLs(List<string> SQLStringList)

        {

            //建立連接數據庫

            SqlConnection conn = new SqlConnection("server=“ip”;database=login;uid=sa;pwd=123456;");

            //打開數據庫

            conn.Open();

            //建立執行數據操作命令對象

            SqlCommand cmd = new SqlCommand();



            //將數據庫連接對象賦值給命令對象

            cmd.Connection = conn;

            

            //執行事務

            SqlTransaction tx = conn.BeginTransaction();

            //將事務賦值給命令對象

            cmd.Transaction = tx;



            try

            {

                //通過for循環遍歷在泛型中的sql語句

                for (int i = 0; i < SQLStringList.Count ; i++)

                {

                    string strsql = SQLStringList[i].ToString();

                    //當字符串不為空,則執行

                    if (strsql.Length >1)

                    {

                        //傳入將要執行的sql語句

                        cmd.CommandText = strsql;

                        //執行無參數化查詢

                        cmd.ExecuteNonQuery();

                    }

                }

                //事務提交

                tx.Commit();

            }

            catch (System .Data.SqlClient .SqlException e)

            {                

                throw new Exception (e.Message );

            }

        }

   
  

?

?

總結

?

以上就是對SQL事務的一些理解和實踐,總的來說。事務根據它本身的名字理解上就可以看出是用來執行


某一連串的對數據庫的操作的,常用的就是一些多個sql語句的執行。上述中就是一個簡單的例子,麻雀雖小五


臟俱全。里面有事務對SQL的封裝,泛型的簡單實用,以及如何向事務中傳入參數等等一些基本的操作。與大


家分享。

?

SQL 事務及實例演示


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成人中文字幕一区二区三区 | 国产成人青草视频 | 国产精品福利视频主播真会玩 | 国内一区亚洲综合图区欧美 | 中国精品白嫩bbwbbw | 香蕉视频在线网站 | 欧洲免费在线视频 | xxxx免费观看 | 国产精品天天影视久久综合网 | 国产成人免费手机在线观看视频 | 热99re久久精品天堂vr | 亚洲伦理一二三四 | 女女同免费播放毛片 | 天天综合天天添夜夜添狠狠添 | 欧美色五月 | 成人淫片| 免费观看欧美精品成人毛片 | 国产精品高清久久久久久久 | 99热久久国产这里有只有精品 | 九九久久国产精品大片 | 国产成人 免费观看 | 九九热精品国产 | 日本一级一片免在线观看 | 久久国产影院 | 国产短视频精品区第一页 | 久久综合丁香 | 九九九九九九伊人 | 国产亚洲精品第一区在线观看 | 久久国产乱子伦精品免费看 | 国产成人在线视频播放 | 成人日韩欧美 | 一区二区三区高清 | 欧美高清在线视频一区二区 | 久久一日本道色综合久久m 久久一色本道亚洲 | 久久精品一区二区三区不卡 | 欧美成人手机在线视频 | 免费福利在线播放 | 久久在线资源 | 久久精品国产只有精品2020 | 综合色伊人 | 日韩一区三区 |