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

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條評論
主站蜘蛛池模板: 欧美 日产 国产精品 | 日本不卡中文字幕一区二区 | 欧美精品久久久久久久久大尺度 | 国产精品毛片 | 不卡一级aaa全黄毛片 | 中文字幕欧美日韩在线不卡 | 色黄啪啪网18以下勿入 | 国产一国产一级毛片视频在线 | 亚洲美日韩| 国产免费一级高清淫曰本片 | 欧美日韩福利视频一区二区三区 | 色亚洲视频| 99er久久| 久久大香香蕉国产免费网vrr | 亚洲视频欧洲视频 | 午夜一级毛片免费视频 | 四虎4hu | 玖玖在线视频 | 高清视频 一区二区三区四区 | 久久国产香蕉一区精品 | 亚洲欧美精选 | 琪琪色播 | 国产一区二区三区在线视频 | 久久久在线 | 精品视频在线观看 | 国产香蕉在线 | 一区二区国产在线播放 | 美女bbxx美女bbb | 久久视频免费观看 | 午夜精品aaa国产福利 | 精品九九久久国内精品 | 国产精品免费一区二区区 | 久久99精品久久久久久臀蜜桃 | 在线视频久 | 国产欧美一区二区三区沐欲 | 亚洲小色网 | 性欧美视频 | 国产精品一一在线观看 | 强制高潮18xxxxhd日韩 | 在线观看久草 | 欧美开嫩苞实拍视频在线观看 |