private void button10_Click( object sender, EventArgs e ) { SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=test;User ID=sa;Password=;"); conn.InfoMessage += new SqlInfoMessageEventHandler( conn_InfoMessage ); conn.Open(); //new SqlCommand( "Sp_Test", conn ).ExecuteNonQuery(); new SqlCommand( "raiserror ('第1个消息',1,1);raiserror ('第2个消息',2,1);raiserror ('第3个消息',3,1);", conn ).ExecuteNonQuery(); conn.Close(); } void conn_InfoMessage( object sender, SqlInfoMessageEventArgs e ) { System.Console.WriteLine( e.Message ); } 存储过程的代码如下: CREATE PROCEDURE [dbo].[Sp_Test] AS raiserror ('第1个消息',1,1) raiserror ('第2个消息',2,1) raiserror ('第3个消息',3,1) raiserror ('第4个消息',4,1) raiserror ('第5个消息',5,1) GO 具体可以查询MSDN中关于SqlInfoMessageEventHandler委托、InfoMessage事件的说明。