• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • ASP.NET中的事務處理和異常處理

    發表于:2007-05-25來源:作者:點擊數: 標簽:異常事務處理ASP.NET中的處理
    如何實現事務? 1、在一個存儲過程中編寫事務語句,并使用下面的控制發現是否有錯誤發生,返回相應的值,互聯網應用程序會根據返回的值顯示正確的和容易理解的錯誤信息。下面是一個事務的例子: [Store Procedure] CREATE PROCEDURE PRODUCT_SAVE( AS DECLAR

      如何實現事務?

      1、在一個存儲過程中編寫事務語句,并使用下面的控制發現是否有錯誤發生,返回相應的值,互聯網應用程序會根據返回的值顯示正確的和容易理解的錯誤信息。下面是一個事務的例子:

    [Store Procedure]
    CREATE PROCEDURE PRODUCT_SAVE( AS
    DECLARE
    (@USERID CHAR(5),
    @LOCATION VARCHAR(50),
    @RETURNS INT OUTPUT
    )
    BEGIN TRAN
    UPDATE ADDRESS SET LOCATION=@LOCATION WHERE USERID=@USERID
    IF (@@ERROR>0)
    BEGIN
    @RETURNS=-1 /* Fail to Update */
    ROLLBACK
    END
    ELSE
    @RETURNS=0 /* Suclearcase/" target="_blank" >cceed to update */
    COMMIT

    RETURN @RETURNS


    [Web Application in C#]
    int values;
    DBClass dbc=new DBClass(); // 使用new命令生成一個數據庫
    values=dbc.updatedb("0001", "23 Rain Street"); //And call its function member to update record
    if (values==0)
    Lable_message.text= "Update successfully";
    else
    Lable_message.text= "Sorry, can not update this record, please contact your DBA."

      上面的例子非常適合DBA等對數據庫編程非常熟悉的編程人員,他們更喜歡在存儲過程中完成異常處理功能。如果對數據庫編程不太熟悉,則可以采取下面的方法:

      2、在.NET框架中,我們可以使用SqlTransaction類定義一個事務。此后,我們就可以使用commit或rollback函數控制事務。當然了,我們也可以使用.NET框架提供的異常處理功能獲取系統異常。下面是一個有關的例子:

    [Web Applicaion in C#]
    SqlConnection myConnection = new SqlConnection("Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;");
    myConnection.Open();

    SqlTransaction myTrans = myConnection.BeginTransaction(); //使用New新生成一個事務
    SqlCommand myCommand = new SqlCommand();
    myCommand.Transaction = myTrans;

    try
    {
    myCommand.CommandText = "Update Address set location='23 rain street' where userid='0001'";
    myCommand.ExecuteNonQuery();
    myTrans.Commit();
    Console.WriteLine("Record is udated.");
    }
    catch(Exception e)
    {
    myTrans.Rollback();
    Console.WriteLine(e.ToString());
    Console.WriteLine("Sorry, Record can not be updated.");
    }
    finally
    {
    myConnection.Close();
    }

      需要注意的是,如果使用OleDb類而不是Sqlclient類來定義SQL命令和連接,我們就必須使用OleTransation來定義事務。

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>