Dapper를 통해 SQL 메시지 탭 출력을 전파하는 방법

c# dapper sql sql-server

문제

아무도 내가 어딘가에 그것을 표시 할 수 있도록 메시지 탭 출력을 Dapper를 통해 C # 코드로 전파 할 수있는 방법을 알고 있습니까?

현재, 행 수 및 예외에 영향을주는 방법을 알고 있지만별로 그렇지 않습니다.

public static void ExecuteSqlCommand(string connectionString, string sql)
{
    using (var db = new SqlConnection(connectionString))
    {
        var count = db.Execute(sql, null, null, 240); 
        Console.WriteLine(count); //can get count of rows affected but not rest of output from Messages Tab in SSMS.
    }
}

SQL Server Profiler를 실행하여 메시지가 표시되는지 확인했지만 아무 것도 보지 못했습니다. SQL Server Management Studio에서 SQL 스크립트를 실행하면 메시지가 생성된다는 것을 알지만 어디에도 가지 않는 것 같습니다.

db.InfoMessage를 조사했으나 작동하지 않아 시간이 조금 지나갔습니다.

예를 들어 수정해야하는 테이블 작성 스크립트를 실행할 때 "경고! 최대 키 길이는 900 바이트입니다. 색인 'UQ_UniqueMachineInfo'의 최대 길이는 2428 바이트입니다. 큰 값 조합의 경우 삽입 / 업데이트 작업이 실패합니다. " 코드를 통해 보여줄 필요가 있습니다.

수락 된 답변

연결에서 이벤트 처리기를 InfoMessage 이벤트에 연결하지 않습니다.

public static void ExecuteSqlCommand(string connectionString, string sql)
{
    using (var db = new SqlConnection(connectionString))
    {
        db.InfoMessage += new SqlInfoMessageEventHandler(db_InfoMessage);
        var count = db.Execute(sql, null, null, 240); 
        Console.WriteLine(count); //can get count of rows affected but not rest of output from Messages Tab in SSMS.
    }
}

void db_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
    // handle here and look at e.Message
}


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow