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

每当客户打开,关闭連接时,为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("--------");
}

}
}


本文介绍了一个使用C#实现的示例程序,该程序演示了如何通过StateChange事件处理程序来监控SQL连接的状态变化,并在连接打开和关闭时记录相关信息。

984

被折叠的 条评论
为什么被折叠?



