分享

c# 获取sqlserver 运行脚本的print消息的方法分享

 小样样样样样样 2020-05-12

转自:http://www./?p=6923 

摘要:
在sql脚本的编写中,我们经常使用sql脚本print消息,作为输出测试,
通过获取print消息,我们可以快速获取程序中的错误信息,下文讲述通过 SqlInfoMessageEventHandler 获取print信息,如下所示:
实验环境:sqlserver 2008 R2 


 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


using System.Data; 
using System.Data.SqlClient;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{


webCrm.SAG tmp = new webCrm.SAG();

protected void Page_Load(object sender, EventArgs e)
{
/*获取 sql print的消息信息*/
string connectionString = "data source=***********;initial catalog=boss;user id=sa;password=erp;";

using (SqlConnection sqlcon = new SqlConnection(connectionString))
{
sqlcon.Open();
sqlcon.InfoMessage += new SqlInfoMessageEventHandler(OnReceivingInfoMessage);
/* 查询某个表上的索引碎片的详细信息 */
SqlCommand cmd = new SqlCommand("print '输出消息1'; set statistics io on ;select * from [ierror] ; print '输出sql消息完毕'", sqlcon);
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
}
Console.Read();


}

 

private void OnReceivingInfoMessage(object sender, SqlInfoMessageEventArgs e)
{ 
Response.Write("输出sql消息:" + e.Message.ToString());
}

 


}
}

 

----------------------输出-------------------------------------------------------------------------
输出sql消息:输出消息1
表 'IError'。扫描计数 1,逻辑读取 1 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
输出sql消息完毕 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多