Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何处理从SQL抛出到controller.cs的错误消息_C#_Sql Server_Error Handling - Fatal编程技术网

C# 如何处理从SQL抛出到controller.cs的错误消息

C# 如何处理从SQL抛出到controller.cs的错误消息,c#,sql-server,error-handling,C#,Sql Server,Error Handling,我想检查重复的用户名是否存在 在我的AddNewUser存储过程中 我使用了以下代码 DECALRE @error nvarchar(500) IF EXISTS(SELECT EMAIL FROM [USERSTABLE] WHERE Email= @Email) set @error = 'User already exists with email address '+@Email RAISERROR (@error,16,1); 现在我想在UserNameControlle

我想检查重复的用户名是否存在

在我的AddNewUser存储过程中

我使用了以下代码

DECALRE @error nvarchar(500)
IF EXISTS(SELECT EMAIL FROM [USERSTABLE] WHERE Email= @Email)  
set @error = 'User already exists with email address '+@Email
RAISERROR (@error,16,1);    
现在我想在UserNameController.cs上捕获此错误消息

try
{
 using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    connection.Open();
                    using (SqlCommand cmd = new SqlCommand("sp_CreateNewUser", connection))
                    {
                        cmd.CommandType = CommandType.StoredProcedure;

            //some parameters
            cmd.ExecuteScalar();
}

catch(Exception ex)
{throw ex;}
现在在
ex
中,我收到了错误消息。
但是如何在视图中显示它呢?(.cshtml)?

如何将
'ex'
存储在
视图包/TempData
中,然后在视图中显示它


如果我错了,请原谅,我对MVC不太了解

可能的解决方案之一是在web.config中启用自定义错误:

<system.web>
    <customErrors mode="On" />
</system.web>

完成后,在Views/Shared中创建一个名为Error.cshtml的新视图:

@model System.Web.Mvc.HandleErrorInfo

<!DOCTYPE html>
<html>
<head>
    <title>Error</title>
</head>
<body>
    <h2>
        Sorry, an error occurred while processing your request.
    </h2>
    <p>Controller Name: @Model.ControllerName</p>
    <p>Action Name : @Model.ActionName</p>
    <p>Message: @Model.Exception.Message</p>
</body>
</html>
</html>
@model System.Web.Mvc.HandleErrorInfo
错误
很抱歉,处理您的请求时出错。
控制器名称:@Model.ControllerName

操作名称:@Model.ActionName

消息:@Model.Exception.Message


现在,当抛出异常时,您将在此自定义视图中看到异常消息。无需手动捕获。

视图上,您需要创建控件以显示有关错误的消息-通常它是干净的或不可见的。如果您有错误-将您的消息abot error放在此控件中并使其可见

在这里更改您的代码

catch(Exception ex)
{/*there must be code to show message*/}