用InfoMessage事件记录所有数据庫消息
来源:互联网 发布:云言秒赞网源码 编辑:程序博客网 时间:2024/05/21 21:01
数据庫给出信息消息时,连接对象生成InfoMessage事件。信息消息不是来自数据庫的错误消息。它们是数据庫发出的警告消息。也是PRINT SQL语句的输出。对于严重性级别等于10或者小于10的任何消息都认为是信息消息,使用InfoMessage事件捕捉。
InfoMessage事件处理程序接收InfoMessageEventArgs对象,其Errors集合属性中含有来自数据源的消息集合。该集合中的Error对象具有SqlError类型,可以此进行查询,以得到数目,来源,消息以及存储过程中发出这个消息的确切行号等信息。我们这里运行一条SQL的PRINT语句。
//事件处理程序,其签名与委托SqlInfoMessageEventHandler相同
private void cnInfoMessage(object sender, SqlInfoMessageEventArgs e)
{
foreach(SqlError err in e.Errors)
{
lbResult.Items.Add("-----");
lbResult.Items.Add("Entering InfoMessage Event Handler");
lbResult.Items.Add("Source:" + err.Source);
lbResult.Items.Add("State:" + err.Number);
lbResult.Items.Add("Number:" + err.Procedure);
lbResult.Items.Add("Server:" + err.Server);
lbResult.Items.Add("Message:" + err.Message);
lbResult.Items.Add("Exiting InfoMessage Event Handler");
lbResult.Items.Add("-----");
}
}
private void cmdCnInfoMsg_Click(object sender, EventArgs e)
{
SqlConnection cn =
new SqlConnection(@"Data Source=localhost;Integrated Security=SSPI;database=Northwind");
SqlCommand cmd = new SqlCommand();
//PINT语句不返回任何行
cmd.CommandText = "PRINT 'Get CustomerId for all customers'";
cmd.Connection = cn;
//把cnInfoMessage函数指定为InfoMessage事件的事件处理程序
cn.InfoMessage += new SqlInfoMessageEventHandler(cnInfoMessage);
try
{
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
lbResult.Items.Add(dr.GetString(0));
}
}
catch (SqlException se)
{
MessageBox.Show(se.Message);
}
finally
{
cn.Close();
}
}
}
}
InfoMessage事件处理程序接收InfoMessageEventArgs对象,其Errors集合属性中含有来自数据源的消息集合。该集合中的Error对象具有SqlError类型,可以此进行查询,以得到数目,来源,消息以及存储过程中发出这个消息的确切行号等信息。我们这里运行一条SQL的PRINT语句。
//事件处理程序,其签名与委托SqlInfoMessageEventHandler相同
private void cnInfoMessage(object sender, SqlInfoMessageEventArgs e)
{
foreach(SqlError err in e.Errors)
{
lbResult.Items.Add("-----");
lbResult.Items.Add("Entering InfoMessage Event Handler");
lbResult.Items.Add("Source:" + err.Source);
lbResult.Items.Add("State:" + err.Number);
lbResult.Items.Add("Number:" + err.Procedure);
lbResult.Items.Add("Server:" + err.Server);
lbResult.Items.Add("Message:" + err.Message);
lbResult.Items.Add("Exiting InfoMessage Event Handler");
lbResult.Items.Add("-----");
}
}
private void cmdCnInfoMsg_Click(object sender, EventArgs e)
{
SqlConnection cn =
new SqlConnection(@"Data Source=localhost;Integrated Security=SSPI;database=Northwind");
SqlCommand cmd = new SqlCommand();
//PINT语句不返回任何行
cmd.CommandText = "PRINT 'Get CustomerId for all customers'";
cmd.Connection = cn;
//把cnInfoMessage函数指定为InfoMessage事件的事件处理程序
cn.InfoMessage += new SqlInfoMessageEventHandler(cnInfoMessage);
try
{
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
lbResult.Items.Add(dr.GetString(0));
}
}
catch (SqlException se)
{
MessageBox.Show(se.Message);
}
finally
{
cn.Close();
}
}
}
}
- 用InfoMessage事件记录所有数据庫消息
- 记录Objective-C中所有消息
- 记录Objective-C中所有消息
- Java 链接MYSQL 显示数据所有记录
- 查询数据表里所有重复里的单条记录
- sql 查出一张表中重复的所有记录数据
- 查询数据中所有表实际记录数
- sql 查出一张表中重复的所有记录数据
- sql 查出一张表中重复的所有记录数据
- sql 查出一张表中重复的所有记录数据
- sql 查出一张表中重复的所有记录数据
- sql 查出一张表中重复的所有记录数据
- sql 查出一张表中重复的所有记录数据
- sql 查出一张表中重复的所有记录数据
- sql 查出一张表中重复的所有记录数据
- oracle统计表的所有列的非空记录数据
- 读取一条记录数据里边所有字段 MySQLi语句
- sql 查出一张表中重复的所有记录数据
- SQLserver自动清除超过三天的记录
- SQLserver自动清除超过三天的记录
- 生死不离
- VC++常用数据类型及其操作详解 - TMD 程序员宁有种乎? - 博客园
- 提高英语听力的细节问题
- 用InfoMessage事件记录所有数据庫消息
- houghlines的例子
- Spring 整和Struts
- 项目秀-开篇
- 关于插件项目中连接数据库的问题
- 假如可以用机器人来救灾
- 用VC++, OpenCV写大家来找茬外挂
- 美国国际救援小组:地震中自救窍门
- 不得不说某些网友的心态