通过StateChangeEvent事件(StateChangeEventHadler委托)计算数据庫访问时间次数 


        通过委托计算数据庫访问时间,次数

每当客户打开,关闭連接时,为StateChange事件指定处理程序,
通过事件处理程序在列表框显示相关信息。
namespace  @event
{
    
public partial class Form1 : Form
    
{
        
public Form1()
        
{
            InitializeComponent();
        }


     

        
private void cmdCnStateChange_Click(object sender, EventArgs e)
        
{
            SqlConnection cn
=
                
new SqlConnection(@"Data Source=localhost;Integrated Security=SSPI;database=Northwind");

            SqlCommand cmd
=new SqlCommand();
            cmd.CommandText
="SELECT CustomerId,CompanyName FROM Customers";
            cmd.Connection
=cn;
            cn.StateChange
+=new StateChangeEventHandler(CnStateChange);

            
try
            
{
             
                cn.Open();
                SqlDataReader dr 
= cmd.ExecuteReader();
            
                
while (dr.Read())
                
{
                    lbResult.Items.Add(dr.GetString(
0+ "-" + dr.GetString(1));
                   
                }

               
            }

            
catch (SqlException se)
            
{
                
foreach (SqlError err in se.Errors)
                
{
                    lbResult.Items.Add(err);
                }

            }

            
finally
            
{
                cn.Close();
            }

 

          }

        
private void CnStateChange(object sender, StateChangeEventArgs ev)
        
{
            lbResult.Items.Add(
"--------");
            lbResult.Items.Add(
"Entering StateChange EventHander");
            lbResult.Items.Add(
"Sender=" + sender.ToString());
            lbResult.Items.Add(
"Original State=" + System.DateTime.Now);//获取当前时间
            lbResult.Items.Add(
"Current State=" + ev.CurrentState.ToString());//获取当前状态
            lbResult.Items.Add(
"Exiting StateChange Event Hander");
            lbResult.Items.Add(
"--------");

        }

    

    }

}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值