Да, вы можете использовать System.Web.HttpContext для вывода окна сообщения с предупреждением JavaScript.
Вы помещаете System.Data.SqlClient.SqlCommand в триггер try, а в улове вы выводите Exception какпредупреждение JavaScript (вам нужно экранировать сообщение, чтобы специальные символы и кавычки обрабатывались правильно.
Вот мой метод (VB.NET)
Public Shared Sub Show(ByRef objMessage As Object, Optional ByRef strTitle As String = Nothing)
Dim strMessage As String = CStr(objMessage)
Dim pgCallingPage As Page = TryCast(HttpContext.Current.Handler, Page)
If pgCallingPage IsNot Nothing Then
strMessage = Microsoft.JScript.GlobalObject.escape(strMessage) ' Reference Microsoft.JScript.dll in the project reference
strMessage = "<script type=""text/javascript"" language=""javascript"">alert(unescape(""" + strMessage + """));</script>"
pgCallingPage.ClientScript.RegisterStartupScript(pgCallingPage.GetType(), System.Guid.NewGuid().ToString(), strMessage, False)
End If
End Sub
Здесь преобразование C #:
public static void Show(object objMessage, string strTitle = null)
{
string strMessage = Convert.ToString(objMessage);
Page pgCallingPage = HttpContext.Current.Handler as Page;
if (pgCallingPage != null) {
strMessage = Microsoft.JScript.GlobalObject.escape(strMessage);
// Reference Microsoft.JScript.dll in the project reference
strMessage = "<script type=\"text/javascript\" language=\"javascript\">alert(unescape(\"" + strMessage + "\"));</script>";
pgCallingPage.ClientScript.RegisterStartupScript(pgCallingPage.GetType(), System.Guid.NewGuid().ToString(), strMessage, false);
}
}
Если вам не нравятся окна с предупреждающими сообщениями (потому что нельзя скопировать вставку), я предлагаю вам просто вывести новую строку текста (будет в верхней части документа):
Public Shared Sub WriteLine(ByRef objMessage As Object)
Dim strMessage As String = CStr(objMessage)
HttpContext.Current.Response.Write("<br/><p style=""font-family: Verdana, Calibri, Arial, Helvetica, Sans-Serif; font-color: #FF0000; font-size: 10mm;"">" + HttpContext.Current.Server.HtmlEncode(strMessage) + "</p><br/>")
End Sub
public static void WriteLine(object objMessage)
{
string strMessage = Convert.ToString(objMessage);
HttpContext.Current.Response.Write("<br/><p style=\"font-family: Verdana, Calibri, Arial, Helvetica, Sans-Serif; font-color: #FF0000; font-size: 10mm;\">" + HttpContext.Current.Server.HtmlEncode(strMessage) + "</p><br/>");
}