private static void HandleSqlClientException(object sender, System.Data.SqlClient.SqlException e)
{
const int MSSQL_CONNECTION_ERROR = -1;
const int MSSQL_SERVICE_STOPED = 2;
const int MSSQL_SERVICE_PAUSED = 17142;
const int MSSQL_CONSTRAINT_VIOLATED = 547;
const int MSSQL_NULL_NOT_ALLOWED = 515;
const int MSSQL_MSDTC_NOT_RUNNING = 8501;
const int MSSQL_UNIQUE_VIOLATED = 2627;
const int MSSQL_LOGIN_FAILED = 4060;
const int MSSQL_FILE_ACCESS_DENIED = 5120;
const int MSSQL_LOGIN_DENIED = 18456;
const int MSSQL_CONNECTION_FAILED = 53;
const int MSSQL_EXECUTE_TIMEOUT = 30;
const int MSSQL_PERMISSION_DENIED = 229;
const int MSSQL_CLR_DISABLED = 6263;
string errorMessage = "�������������� ���������� �� ������ �����������.";
switch (e.Number)
{
case MSSQL_CONNECTION_ERROR:
errorMessage = "������ ����������� � ������ SQL Server. ���������, ��� �� ��������� ������� ��� ������� � ��� ������ ��������� �����������. ���������� �� ������� � �������������� ��� ������."; break;
case MSSQL_SERVICE_STOPED:
errorMessage = "������ Microsoft SQL Server ����������� ��� ������� �������� ��� �������. ���������, ��� ������ �������� � ������� ������ ��� �������. ���������� �� ������� � �������������� ���� ������."; break;
case MSSQL_SERVICE_PAUSED:
errorMessage = "������ Microsoft SQL Server �������������� ��� ���������� � ����� offline. ��������� ������ � ��������� �������. ���������� �� ������� � �������������� ��� ������."; break;
case MSSQL_CONSTRAINT_VIOLATED:
errorMessage = "���������� ������� ���� �������� � ���������� ������������ �����������. ���� �� ��������� �������� ���������� ��� ��������� ������, �� ���������, ��� �� ��������� ��� ����������� ����, ������ ����� ���������� ������ � �������� � ���������� �������� ��������. �������� �������� ����� ���� �������� � ���������� ������� ����������� �� ������. ������� ��� ��������� ������ � ��������� ������� ��������."; break;
case MSSQL_NULL_NOT_ALLOWED:
errorMessage = "���������� �������� ���� ��������, ��� ��� �� ������ �������� � ����� ��� ���������� ����������� � ���������� �����. ��������� ����������� ���� � ��������� ��������."; break;
case MSSQL_MSDTC_NOT_RUNNING:
errorMessage = "������ ������������ ������������� ���������� �� ��������. �������������� ��������� ����������������� \"������\" (������ ���������� -> ����������������� -> ������) ��� �������."; break;
case MSSQL_UNIQUE_VIOLATED:
errorMessage = "���������� �������� ���� �������� � ���������� ������������ ����������� �� ������������. ��� ������ ���������, ���� �� ��������� �������� � ������� ������, ���������� � ������� ��� ������������ � ���� ������. ��������� ������������ �������� � ��������� �������."; break;
case MSSQL_LOGIN_FAILED:
errorMessage = "���������� � �������� �����������, �� ���� ������ �� ������� �����������. ��������, ��� ����� ��� ������ ���� ����������� �� �������. ��� ���������� ���� ������ ���������� � ��������������."; break;
case MSSQL_FILE_ACCESS_DENIED:
errorMessage = "������ � ������ ��� ���� ������ ��������. �������� ����� ������� � ������ ��������� ��� ��� ��� ��������� ������� \"������ ��� ������\". ���� ������������ �������� ������� NTFS ��������� ����� ������� ��������������� ���� ��� ������� � ������. ���������� � �������������� �� �������."; break;
case MSSQL_LOGIN_DENIED:
errorMessage = "��� �������� � ������� � ������ ��� ��������� ������. ��������, ��������� ������������� �� ��� ��� � ������ ������������� ������� ��� ������ ��� ��������� ������. ��� ������� �������� ���������� � ��������������."; break;
case MSSQL_CONNECTION_FAILED:
errorMessage = "�� ������ ���������� ����� � �������� ��� ������ SQL Server. ���������, ��� �� ��������� ������� ��� ������� � ��� ������ ��������� �����������. ���������� �� ������� � �������������� ��� ������."; break;
case MSSQL_EXECUTE_TIMEOUT:
errorMessage = "�������� ������ ����� ������� � ������ ������� � ����������. ��� ������ ����� ����������� ��� ������� �������� ������� ��� ���������� �������� ��� ������� ����������� �������� ���� ������. ���������� ������� ���� ������� �������� �� ���������. ��������� �������� �������� �� ������� � ��������� �������.";
break;
case MSSQL_PERMISSION_DENIED:
errorMessage ="��� �������� � ������� � ������ �� �������� ���� ������. ��� ������� �������� ���������� � ���������� ��������������.";
break;
case MSSQL_CLR_DISABLED:
errorMessage = "��� ������� ���� ������ �������� ������������� CLR. ��� ��������� ��������� CLR ����������� ����� 'clr enable' ��������� sp_configure. ������ �������������:\nsp_configure 'clr enabled', 1\nGO\nRECONFIGURE\nGO\n���������� �� ������� � ��������������.";
break;
}
ShowExceptionDialog(e, errorMessage, "Microsoft SQL Server", MessageBoxIcon.Information, true);
}