sql異步執行


 /// <summary>  
/// 按鈕事件 異步執行  
/// </summary>  
/// <param name="sender"></param>  
/// <param name="e"></param>  
private void button4_Click(object sender, EventArgs e)  
{  
    string strSql = "SELECT c1 ,c2 FROM  T1;" +  
                    "WAITFOR DELAY '0:0:3';";  
    AsyncExecuteNonQuery(strSql, CallbackAsyncExecuteNonQuery);  
}  
  
// <summary>  
/// 異步執行SQL。   
/// </summary>  
/// <param name="sqlText">要執行的SQLText</param>  
/// <param name="callBack">回執行監控事件</param>  
public static void AsyncExecuteNonQuery(string sqlText, AsyncCallback callBack)  
{  
    //關閉數據庫連接要在callback中關閉,因為是異步操作  
    SqlConnection connection = null;  
    try  
    {  
        connection = new SqlConnection();  
        connection.ConnectionString = "Data Source=192.168.1.15;Initial Catalog=TestDB;user id=sa;password=123;Max Pool Size=200;Min Pool Size=5;Pooling=true;Connection Timeout=50;Asynchronous Processing=true";  
        SqlCommand cmd = connection.CreateCommand();  
        cmd.CommandType = CommandType.Text;  
        cmd.CommandText = sqlText;  
        connection.Open();  
        cmd.BeginExecuteNonQuery(callBack, cmd); //開始執行SQL語句  
    }  
    catch (Exception ex)  
    {  
        if (connection != null)  
        {  
            connection.Close();  
        }  
    }  
}  
/// <summary>  
///  執行異步SQL 回調方法   
/// </summary>  
/// <param name="callBack"></param>  
public static void CallbackAsyncExecuteNonQuery(IAsyncResult callBack)  
{  
    SqlCommand cmm = null;  
    try  
    {  
        cmm = (SqlCommand)callBack.AsyncState;  
        if (cmm == null)  
        {  
            return;  
        }  
        cmm.EndExecuteNonQuery(callBack); //執行完畢  
    }  
    catch (Exception ex)  
    {  
        if (cmm != null)  
        {  
            //異步執行SQL異常  
            cmm.Dispose();  
        }  
        else  
        {  
            //異步執行SQL異常  
        }  
    }  
    finally  
    {  
        if (cmm != null && cmm.Connection != null && cmm.Connection.State != ConnectionState.Closed)  
        {  
            cmm.Dispose();  
            cmm.Connection.Close();  
        }  
    }  
}  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM